情况一: 主备均可用,进行主备切换。数据不丢失。
主备正常切换,此场景主要是针对在主备同步复制正常的情况下进行。可用于灾备演练、计划性的主备切换等。
注意:如果不需要应用程序修改连接数据库的IP。则主备IP 需要调换。
1. 切断应用对主库的访问
2. 主库及备库均设置为只读状态
set global read_only=ON;
set global super_read_only=ON;
3. 查看主备同步状态
3.1 查看备库复制进程状态
show slave status\G
确认Slave_IO_Running,Slave_SQL_Running状态为YES,Seconds_Behind_Master为0, 则代表两边数据一致
3.2 比对主备两边的GTID是否一致(如果使用gtid方式同步)
主库执行:
SELECT @@gtid_executed;
备库执行:
SELECT GTID_SUBSET('4bd6e737-120e-11ed-9c82-286ed488c7c5:1-75416195', @@gtid_executed);
输出的结果为1,代表两边数据一致
注意: 4bd6e737-120e-11ed-9c82-286ed488c7c5:1-75416195 是上面主库输出的值
4. 从库停掉复制进程并清空主从同步信息
stop slave;
reset slave all;
5. 从库开启读写,转为新主库
set global read_only=off;
set global super_read_only=off;
注意:根据实际情况,备库部分参数要考虑是否要与原主库一致
6. 原主库设置为新备库,完成主从切换
CHANGE MASTER TO MASTER_HOST='xxx.xxx.xxx.xxx',MASTER_USER='xxx',MASTER_PORT=3306,MASTER_PASSWORD='xxx',master_auto_position=1 ;
注意:是否使用gtid 同步,需要根据实际情况而定
start slave;
show slave status\G
7. 启用应用访问数据库
情况二: 主库宕机,备库切换为主库。可能会丢失部分数据。
1. 查看备库复制进程状态
show slave status\G
Seconds_Behind_Master 记录输出值
2. 从库停掉复制进程并清空主从同步信息
stop slave;
reset slave all;
3. 从库开启读写,转为新主库
set global read_only=off;
set global super_read_only=off;
4. 修改IP为原主库的IP
注意:如果有数据丢失,且可以获取主库的binlog 信息。后续慢慢修复。。。
匿名
2025-10-22
盖楼盖楼!
匿名
2025-08-11
沙发沙发
匿名
2025-08-10
https://at.oiik.cn/bing.html
匿名
2025-02-21
实用,我在开发https://minmail.app/时候使用到了
王飞翔
2024-12-30
亲爱的朋友:您好!中国疫情持续蔓延,很多人症状非常严重持久不愈,医院人满为患,各年龄段随地倒猝死的现象暴增,多省感染手足口、甲流、乙流、支原体、合胞及腺病毒的儿童不断攀升,目前各种天灾人祸,天气异象频发。古今中外的很多预言都说了这几年人类有大灾难,如刘伯温在预言中说 “贫者一万留一千,富者一万留二三”,“贫富若不回心转,看看死期到眼前”, 预言中也告诉世人如何逃离劫难的方法,真心希望您能躲过末劫中的劫难,有个美好的未来,请您务必打开下方网址认真了解,内有躲避瘟疫保平安的方法。网址1:https://github.com/1992513/www/blob/master/README.md?abhgc#1 网址2:bitly.net/55bbbb 网址3:https://d3ankibxiji86m.cloudfront.net/30gj 如打不开请多换几个浏览器试
匿名
2024-12-12
Backdata 搜索引擎网址提交入口:https://backdata.net/submit-site.html