zoukankan      html  css  js  c++  java
  • 将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在整个集群中都是一致的,直接挂载即可。

  • 相关阅读:
    “王者对战”之 MySQL 8 vs PostgreSQL 10
    PostgreSQL 进程结构
    Linux core dump 诊断进程奔溃退出
    linux下core dump--转载
    2.4 等比数列
    2.3 等差数列的前n项和
    2.2 等差数列
    1.1.1 三角形正弦定理
    调整颜色
    去括号法则
  • 原文地址:https://www.cnblogs.com/juanmaofeifei/p/13367031.html
Copyright © 2011-2022 走看看