• 将mysql主从复制由ABB模式修改为ABC模式


    最近遇到一个奇葩的需求,需要将mysql的主从复制模式由ABB修改为ABC,恰好这个mysql集群没有开启GTID,当时是在B上做了一次全量备份,然后使用该全量备份恢复C的方式进行的。做完之后在想有没有简单的方式实现,最终有了结果。

    假设原主从复制拓扑为 A -- B1 -- B2,最终要求 B2作为 B1的从库存在:

    对于非GTID模式的集群:

    1. B2上执行 stop slave io_thread;

    2. 确保 B1 上的数据要比 B2要接近主节点;

    3. 在B1上执行stop slave io_thread; 待B1节点上的relay log应用完全之后

    执行 show master status;命令得到B1节点当前binlog的点位信息 B1_log1 和 B1_pos1。

    再执行 show slave status;命令通过 Master_Log_File 和 Read_Master_Log_Pos 得到当前相对于主节点的binlog的点位信息 A_log1 和 A_pos1。

    而后执行 start slave io_thread;恢复 B1的复制状态。

    4. 在 B2 上执行 start slave until  master_log_file='${A_log1}',master_log_pos=A_pos1; 待A_log1 和 A_pos1该点位前的数据全部重放完成之后,将 B2按照 B1_log1 B1_pos1的点位作为 B1的从库挂在 B1上。

    对于 GTID 模式的集群,因为 GTID在整个集群中都是一致的,直接挂载即可。

  • 相关阅读:
    判断一下是星期几
    猴子分桃
    免子生免子
    字符串排序
    非关系型数据库(一)
    学习redis简介(一)
    SAVEPOINT
    *****POSTGRESQL文檔
    程序员人生之路(分析的非常透彻!)
    UpperCase for ALL Text Editors
  • 原文地址:https://www.cnblogs.com/juanmaofeifei/p/13367031.html
Copyright © 2020-2023  润新知