随着业务量的不断增加,数据库的压力总是会越来越大的,如果是要对mysql数据库的硬件升级,势必是要对mysql主从做切换,mysql的主从复制的结构如果不借助第三方工具时做mysql的高可用,要做主从的切换是要做停机维护手动切换的,这里就以普通的一主一从的结构中简单的说一说mysql数据库主从切换的几个要注意的点:
1、server id以前看见很多人在做主从切换的时候没有注意到这一点,导致slave IO报错,包括自己也有过,这个还是要稍微注意下,尤其是在mysql的大规模集群下
2、在主从切换中master没有锁表或者是slave中设置了read only没有关,或者是主从的复制没有结束就开始停止slave IO,这个问题也是比较常见的问题,尤其是在有大量innodb引擎下的比较繁忙的数据库,许多事务没有提交,就贸然的操作往往会导致数据的丢失以及主从复制的数据不一致,这个还是尤为重要的,在维护时要先在slave等一段时间,等从库中“show full processlist;”看下线程中看见“has read all relay log”slave已读取所有的relay log后,再到master中做”flush tables with read lock;”,要注意的是在此时master不要退出当前的session,不然锁表就失败了,先查下当前的master状态,并且记录下“show master status\G”,而在salve中此时就要检查下是否有开启read only“show global variables like 'read_only';”如果是有开着则要关闭“set global read_only = 0;”
3、在停止主从复制后,没有清除掉相关的原master或原slave的信息,这个问题如果没有注意也会带来新主从的失败,在原先的slave中先清理掉所有的slave信息再设置成主库“reset slave all;reset master;”,当然如果在原先salve上没有开启binlog那么改成主库后要开启,至于原的master改成slave如果不是需要的话可以把binlog关闭,并且开启read only
剩下的步骤就和做主从复制是一样的了,在此就不做过多的赘述了。