重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
在一主多从的环境中,如主库为M,从库为S1、S2,当主库M出现故障时,把S1设为新的主库,并且修改从库S2的配置,使其指向新的主库S1。此外还要通知应用修改主数据库的IP地址,如果出现故障的主库M修复的话可以设置为新的从库。主从切换的详细步骤如下:
目前创新互联公司已为数千家的企业提供了网站建设、域名、雅安服务器托管、网站托管运营、企业网站设计、开封网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。
1 首先要保证所有从库已经执行了relay log中的全部更新,在每个从库上先停止io线程,再用以下语句查看:
MySQL>stop slave io_thread;
mysql> show processlist\G
直到看到下面的语句,表示全部更新执行完毕。
Has read all relay log waiting for the slave I/O thread to update it
2 在从数据库S1上,停止从服务,然后把S1设置成主数据库:
mysql> stop slave;
mysql> reset master;
3 在S2上(如果有多台,则在所有从服务器上,此时S1为主服务器),停止从服务,然后重新设置S1为主数据库,S1的IP为192.168.1.101,再执行start slave启动复制:
mysql> stop slave;
mysql> change master to master_host = '192.168.1.101';
mysql> start slave;
4 修改客户端应用指向S1服务器:
5 删除S1服务器(新的主库服务器)上的master.info和relay-log.info文件,否则一旦重启还会按照从库启动。
6 最后,如果M服务器恢复,则可以按照S2的方法设置为S1的从库。
备注:上面的步骤默认S1是启用了log-bin选项的,这样重置成主库后可以把二进制日志复制到其它从库。其次,S1上没有开启log-slave-updates参数。