mysql 主备切换

admin 2024-07-19 205 阅读 0评论

情况一:  主备均可用,进行主备切换。数据不丢失。

主备正常切换,此场景主要是针对在主备同步复制正常的情况下进行。可用于灾备演练、计划性的主备切换等。

注意:如果不需要应用程序修改连接数据库的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 信息。后续慢慢修复。。。

发表评论

快捷回复: 表情:
Addoil Applause Badlaugh Bomb Coffee Fabulous Facepalm Feces Frown Heyha Insidious KeepFighting NoProb PigHead Shocked Sinistersmile Slap Social Sweat Tolaugh Watermelon Witty Wow Yeah Yellowdog
提交
评论列表 (有 0 条评论, 205人围观)