最近遇到一个奇葩的需求,需要将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在整个集群中都是一致的,直接挂载即可。

最新文章

  1. Jquery的事件操作和文档操作
  2. kvm常用操作
  3. 谁说JavaScript容易?
  4. js指定分隔符连接数组元素join()
  5. 2016 Multi-University Training Contest 4
  6. 终于搞定office 2013中文双引号无法匹配问题啦!!!
  7. Javascript单元测试之QUnit
  8. 在64位系统上不能安装Matlab notebook的解决方案
  9. Form1和Form2的交互
  10. mysql 数据库连接(远程和本地原理同样)
  11. 我用爬虫一天时间“偷了”知乎一百万用户,只为证明PHP是世界上最好的语言
  12. 【LeetCode】Sum Root to Leaf Numbers
  13. PGA_AGGREGATE_TARGET 原理
  14. Windows在配置Python+tornado
  15. 对Git的一些理解
  16. web 开发中的路由是什么意思
  17. mvc 在弹出框中实现文件下载
  18. python 读取mysql数据至csv文件中,并发送邮件
  19. python ----元组方法以及修改细节
  20. C++中一些类和数据结构的大小的总结

热门文章

  1. javaweb项目中关于配置文件web.xml的解析
  2. SWAKS伪造邮件发送
  3. Baiduyun
  4. 解决centos7服务器shadows已启动但是无法连接的问题
  5. 台式机ATX电源:各接口定义、启动方法、电源特点
  6. 羽夏看Win系统内核——调试篇
  7. 讲一讲 kafka 的 ack 的三种机制 ?
  8. final、finalize 和 finally 的不同之处?
  9. 学习Apache(五)
  10. 数据结构:DHU顺序表ADT模板设计及简单应用:找匹配