我们来模拟一下,如果主机宕机了,那我们该如何让从快速替换,让损失降到最小?

解决方案:

一主多从的环境下,如果主宕机了,选一台从做主,继续和其它从同步。

1-查看每个从库的master.info,看谁的更靠前,最新,更大,丢的数据最少。

cat /application/mysql/data/master.info

mysql-bin.000015

326

2-确保所有relay log全部更新完毕。

在每个从库上执行:stop slave io_thread;  show processlist;

直到看到Has read all relay log;表示从库更新都执行完毕。

3-登陆某从库mysql -uroot -pxxxxxx。

stop slave;

reset master;

quit;

4-进入某从库数据库目录,删除master.info和relay-log.info。

cd /application/mysql/data/

rm -f master.info relay-log.info

5-最终某从库提升为主库。

vim /etc/my.cnf

开启log-bin = mysql-bin

如果存在log-slave-updates,read-only等一定要注释。

重启数据库:/etc/init.d/mysqld restart

6-其它从库操作。

stop slave;
change master to master_host ='172.16.1.100';
start slave;
show slave status\G