什么时候是主从切换的最佳时机?主从延迟越小越好。如何查看备库的同步延迟?--在slave上执行如下命令showslavestatus\G。上图中的返回结果中包含一个seconds_behind_master字段,用于表示当前备库延迟的秒数。seconds_behind_master的计算逻辑每个事务的binlog中都有一个time字段,用来记录在主库上的写入时间。备库取出当前正在执行的事务的时间字段的值,计算其与当前系统时间的差值当seconds_behind_master备库连接到主库时,会执行selectunix_timestamp()函数得到主库的系统时间。如果发现主库的时间和自己不一致,备库在计算seconds_behind_master时会自动扣除差值。现在是什么状况?下一种情况会不会出现主备倒换?主库主动运维操作意外宕机的原因是主库延迟。备库机器配置低,备库压力大(比如对备库进行一些比较耗资源的操作报表分析),用于大事务备份。库并行复制能力的主从切换策略有哪些?可靠性优先策略可用性优先策略什么是可靠性优先策略?可靠性优先策略优先保证数据的可靠性,通常由专门的HA系统实现。可靠性优先策略下的主备切换逻辑,判断SlaveB当前的seconds_behind_master,如果小于某个值(比如5s),继续下一步,否则重试这一步,将MasterA改为读-only状态判断SlaveB的seconds_behind_master的值,直到这个值变为0,将SlaveB变为可读写状态,将业务请求切换到备库B,此时SlaveB正式提升为掌握数据库可靠性优先策略。切换,主节点不可用,会导致服务长时间不可用。可用性优先策略可用性优先策略是不等待主从同步完成。如果主节点宕机,它会立即切换,但这可能会导致数据一致性问题。特别是当binlog模式为statement或者mixed模式时,很容易造成数据不一致。如果binlog模式为ROW模式,由于记录了某一行的所有字段,同步线程在插入数据时可能会因为主键冲突而报错停止。在实际使用中,我推荐使用可靠性优先的策略。毕竟对于数据服务来说,数据可靠性比可用性更重要。
