两种情况服务器down机,数据库down机
如果此时需要切从库
1、先show processlist\G,查看状态
如果看到两个状态,说明此时的从库和主库是同步的
state: waiting for master to send event I/O线程
state:has read all relay log;waiting for the slave I/O thread to update it sql线程
2、登录从库分别查看:
cat /data/3306/data/master.info
cat /data/3307/data/master.info
看哪个从库的哪个master.info哪个更新,就说明哪个从库一致性更高,所以此时就确定最新的库为主库。
选个pos最大的作为主库
或利用半同步的功能,直接选择做实时同步的这个从库。
1、确保所有relay log全部更新完毕。
在每个从库上执行stop slave io_thread;show processlist;
直到看到has read all relay log;表示从库更新都执行完毕
2、登录从库
mysql -uroot -p123 -S /data/3306/mysql.sock
stop slave;
reset master;
quit;
3、进入数据库数据目录,删除master.info relay-log.info
cd /data/3306/data/master
rm -f master.info relay-log.info
检查授权表,类似read-only参