继上一篇《MySql 9 in Docker 利用克隆插件搭建主从》我们说了主从复制后, 那么我们接下来说说如何手动的进行主从切换。
动手~
1. 原主库设置
-
切断应用对主库的访问
-
主库设置为只读状态
set global read_only=ON;
set global super_read_only=ON; -
主库执行
SELECT @@gtid_executed;
查看GTID;
2. 原从库设置
-
查看备库复制进程状态,确认Slave_IO_Running,Slave_SQL_Running状态为YES,Seconds_Behind_Master为0, 则代表两边数据一致。
show slave status
-
执行
SELECT GTID_SUBSET('<主库查询的GTID>', @@gtid_executed);
对比主从数据是否一致,如果输出结果为1,则表示一致; -
停止复制进程,清空主从同步信息
stop REPLICA;
reset REPLICA all; -
开启读写
set global read_only=off;
set global super_read_only=off; -
根据实际情况设置数据库参数是否与原主库一致
3. 设置原主库为从库
- 原主库上开启主从复制
sql
CHANGE REPLICATION SOURCE TO
SOURCE_HOST='172.17.0.7',
SOURCE_PORT = 3306,
SOURCE_USER='repl',
SOURCE_PASSWORD='123456',
GET_SOURCE_PUBLIC_KEY=1,
SOURCE_AUTO_POSITION=1;
start REPLICA;
SHOW REPLICA STATUS\G;
- 接下来进行一下验证步骤
- 完成~