主库宕机 Master DOWN机-企业场景一主多从宕机从库切换主继续和从同步过程详解
登陆从库,show processlist;
查看两个线程的更新状态;
查看所有从库中,查看
/application/mysql-5.6.20/data/mysql.info
确保更新完毕,看看两个从库中哪个库最快,经过测试没有延迟的情况POS差距很小,甚至一致的
然后选取其中POS最大的作为主库
1、确保所有relay log 全部更新完毕
在每个从库上执行 stop slave io_thread; show processlist;
直到看到Has read all relay log;表示从库更新执行完毕:
2、登陆POS值最大的从库执行如下命令:
mysql -uroot -p123456 -S /application/mysql-5.6.20/mysql.sock
stop slave;
retset master;
quit;
3、进到数据库数据目录,删除master.info relay-log.info
cd /application/mysql-5.6.20/data
rm -f master.info relay-log.info
检查授权表,read-only等参数
4、提升从库为主库
vim /application/mysql-5.6.20/my.cnf
开启:
log-bin = /application/mysql-5.6.20/mysql-bin
//如果不存在log-slave-updates read-only等一定要注释掉它。
/application/mysql-5.6.20/mysql restart
到此为止,提升主库完毕。
5、如果主库服务器没宕机,需要去主库binlog补全,提升主库为从库
6、其他从库操作
已检查(同步user rep均存在)
登陆从库
stop slave
cahnge master to master_host='10.0.0.7; // 如果不同步,就指定位置点
start slave;
show slave status\G
7、修改程序的配置文件从主数据库到从数据库(现在新的主库)
平时访问数据库用域名,则直接可以修改hosts解析
8、修理损坏的主库,完成后作为从库使用,或者切换
我们现在讲的是主库意外宕机,例如我们有计划切换,怎么做呢?
1)主库锁表
2)登陆所有的库查看同步状态,是否完成
后面操作与前面同1至4步骤