1、首先停业务
2、所有从库都先停掉IO线程:stop slave io_thread;
再查看SQL线程的执行状态:
show slave status\G;
查看Slave_SQL_Running_State项是否为Slave has read all relay log; waiting for more updates,如下:
Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
或执行show processlist;
如果有Slave has read all relay log; waitingfor more updates 则表示从库都同步完成了。
3、所有从库执行show slave status\G;
对比所有从库的Relay_Master_Log_File,Exec_Master_Log_Pos两个参数的值,数值最大的作为新的主库,如果所有从库的值都相同,都没有落后于主库,选择哪个从库都可以做为新主库。
4、选好准主库后,执行stop slave;reset slave all;set global read-only=0;reset master;show master status;
show master status;
±------------------±----------±-------------±-----------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±------------------±----------±-------------±-----------------±------------------+
| master-bin.000103 | 944151919 | | | |
±------------------±----------±-------------±-----------------±------------------+
记好binlog(master-bin.000103)及binglog的位置(944151919),在my.cnf中也将read-only改为0
执行完以上命令,该库已具备主库的角色,可将型业务接入
5、修改程序中的IP为新主库的IP,开启业务。
6、创建其它从库的复制账号,如果有则忽略;grant replication slave,replication client on . to repl@‘从库IP’ identified by ‘ReplPassword’;flush privileges;
7、其它从库指向新主库,命令如下:
stop slave;reset slave all;
CHANGE MASTER TO
MASTER_HOST=‘新主库IP’,
MASTER_USER=‘repl’,
MASTER_PASSWORD=‘ReplPassword’,
MASTER_PORT=3306,
MASTER_LOG_FILE=‘master-bin.000103’,
MASTER_LOG_POS=944151919,
MASTER_CONNECT_RETRY=60;
开启复制:start slave;
mysql一主多从主库宕机切换步骤
最新推荐文章于 2023-12-13 18:09:58 发布