MySQL主从复制之主库宕机处理


主库宕机  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步骤