MySQL主从切换手册
Master-Slave架构
运维部
V1.0
2016年 05月 24 日
正常切换
- 检查slave同步状态
1)在master执行:show processlist;
显示Master has sent all binlog to slave; waiting for binlog to be updated
2)在slave执行:show processlist;
显示Slave has read all relay log; waiting for the slave I/O thread to update it
mysql> show slave status \G;
检查IO及SQL线程是否正常,如果为NO表明同步不一致,需要重新将slave同步保持主从数据一致。
3)停止slave io线程
在slave执行:mysql> STOP SLAVE IO_THREAD
mysql> SHOW PROCESSLIST;
确保状态为:has read all relay log
以上都执行完成后可以把slave提升为master:
4)提升slave为master
Stop slave;
Reset master;
Reset slave all; 在5.6.3版本之后
Reset slave; 在5.6.3版本之前
查看slave是否只读模式:show variables like ‘read_only‘;
只读模式需要修改my.cnf文件,注释read-only=1并重启mysql服务。
或者不重启使用命令关闭只读,但下次重启后失效:set
global
read_only=off;
mysql> show master status \G;
备注:reset slave all 命令会删除从库的 replication 参数,之后 show slave status\G 的信息返回为空。
5)将原来master变为slave
在新的master上创建同步用户:
grant replication slave on *.* [email protected]‘IP of slave‘ identified by ‘replpwd‘;
在新的slave上重置binlog:
Reset master;
change master to master_host=‘192.168.0.104‘, //Master 服务器Ip
master_port=3306,
master_user=‘repl‘,
master_password=’replpwd’,
master_log_file=‘master-bin.000001‘,//Master服务器产生的日志
master_log_pos=?;//master binlog pos
以上最后两步可以在master执行:show master status
启动slave:start slave; 并查看slave状态:show slave status\G;
异常切换
主机故障或者宕机:
1) 在salve执行:
stop slave;
reset master;
查看是否只读模式:show variables like ‘read_only‘;
只读模式需要修改my.cnf文件,注释read-only=1并重启mysql服务。
或者不重启使用命令关闭只读,但下次重启后失效:set
global
read_only=off;
查看show slave status \G;
查看show master status \G;
将从库IP地址改为主库IP地址,测试应用连接是否正常。
<完>