在一主多从的环境中,如主库为M,从库为S1、S2,当主库出现故障时,主从切换的详细步骤如下:
1 首先要保证所有从库已经执行了relay log中的全部更新,用以下语句查看:
mysql> show processlist\G
直到看到下面的语句,表示全部更新执行完毕。
Has read all relaylogwaiting for the slave I/O thread to update it
2 在所有从库上执行下面的语句:
mysql> stop slave io_thread;
3 在从数据库S1上,停止从服务,然后把S1设置成主数据库:
mysql> stop slave;
mysql> reset master;
4 在S2上(如果有多台,则在所有从服务器上,此时S1为主服务器),停止从服务,然后重新设置S1为主数据库,再执行start slave启动复制:
mysql> stop slave;
mysql> change master to master_host = ‘192.168.1.101‘;
mysql> start slave;
5 修改客户端应用指向S1服务器:
6 删除S1服务器(新的主库服务器)上的master.info和relay-log.info文件,否则一旦重启还会按照从库启动。
7 最后,如果M服务器恢复,则可以按照S2的方法设置为S1的从库。
备注:上面的步骤默认S1是启用了log-bin选项的,其次,S1上没有开启log-slave-updates参数。
时间: 2024-12-27 22:28:52