将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主从复制由ABB模式修改为ABC模式的更多相关文章
- MySQL主从复制与读写分离[修改]
作者:lixiuran 日期:2014年5月2日 备注[本人根据网上资源修改,参考http://www.cnblogs.com/luckcs/articles/2543607.html] 测试环境 ...
- 在不用重做系统下,把硬盘IDE模式修改为AHCI模式
Win10自2015年7月29日诞生以来已经3年多了,虽然截至到现在Win7用户使用者仍然比Win10用户多,但是Win10用户也在逐渐增加 所使用的硬件--硬盘 用户为了更好的体验,也逐步的从H ...
- MySQL系列详解六:MySQL主从复制/半同步演示-技术流ken
前言 随着技术的发展,在实际的生产环境中,由单台MySQL数据库服务器不能满足实际的需求.此时数据库集群就很好的解决了这个问题了.采用MySQL分布式集群,能够搭建一个高并发.负载均衡的集群服务器.在 ...
- linux下的mysql数据库以及mysql主从复制
参考博客 1.mysql数据库的安装 centos7如何安装mysql 1.yum安装 1.1首先配置yum源,然后再用yum进行安装 2. 源代码编译安装 3.rpm包安装 yum安装的前提条件,是 ...
- windows下上传shell脚本不能运行—将dos模式修改为unix 文件格式
windows下上传shell脚本至linux,其格式将为dos.dos模式的shell脚本将不能再linux下正确运行,需要修改文件模式为unix. 1 查看文件模式方法 linux服务器上,用vi ...
- 在线建立或重做mysql主从复制架构方法(传统模式和GTID模式)【转】
mysql主从复制架构,是mysql数据库主要特色之一,绝大多数公司都有用到. 而GTID模式是基于事务的复制模式的意思,发展到现在也是越来越多人用. 以前很多文章,介绍搭建mysql主从复制架构,是 ...
- MySQL主从复制之异步模式
MySQL主从复制有异步模式.半同步模式.GTID模式以及多源复制模式,MySQL默认模式是异步模式.所谓异步模式,只MySQL 主服务器上I/O thread 线程将二进制日志写入binlog文件之 ...
- 基于GTID模式MySQL主从复制
基于GTID模式MySQL主从复制 GTID复制原理:基于GTID的复制是MySQL 5.6后新增的复制方式GTID (global transaction identifier) 即全局事务ID, ...
- Mysql主从复制_模式之日志点复制
MySQL数据复制的原理 MySQL复制基于主服务器在二进制日志中跟踪所有对数据库的更改(更新.删除等等).因此,要进行复制,必须在主服务器上启用二进制日志. 每个从服务器从主服务器接收主服务器已经记 ...
随机推荐
- Java基础——StringBuilder
/* StringBuilder作用: String 在new一个新的对象以及进行字符串拼接时,会在常量池创建拼接之前的两个字符串对象,拼接完成后会造成内存浪费,时间浪费 StringBuilder ...
- Azure DevOps (五) 推送流水线制品到流水线仓库
上一篇我们成功创建了我们的第一条流水线,并且配置了阿里云的maven加速,这篇文章我们来研究一下如何把编译好的代码上传到azure的流水线制品仓库中 为后续我们进行发布做准备 首先打开我们上一次编辑的 ...
- 如何做一个网站 (C# + MVC Web+ easyUI )
如何做一个网站 小编想做一个网站,采用技术为:C# + MVC Web+ easyUI 小编经过几天的学习,以及指了几位大神指导,初见效果.建立网站的思路:先列举需要用到了几个知识点,然后逐一攻克,然 ...
- [WPF] 假装可变字体
1. 可变字体 上图中的两个动画,一个文字直接变粗,一个渐渐变粗,我觉得后者会更有趣.但普通的字体可达不到这种效果,例如微软雅黑,无论怎么调整它的 FontWeight,实际上它也只有三种粗细: 这时 ...
- Maven项目报错:“No goals have been specified for this build”解决办法
clean install scf:run第一种解决办法:找到pom.xml文件,在<build>标签里面添加如下所示的代码即可.<defaultGoal> compile & ...
- 多线程常用代码 Future Callable Runable
public class ThreadPoolTest { public static void main(String[] args) throws InterruptedException { E ...
- 对原型链的理解?prototype上都有哪些属性?
在js里,继承机制是原型继承.继承的起点是 对象的原型(Object prototype). 一切皆为对象,只要是对象,就会有 proto 属性,该属性存储了指向其构造的指针. Object prot ...
- Json有什么作用?
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式. 它基于JavaScript(Standard ECMA-262 3rd Edition - Decemb ...
- ubuntu16 和ubuntu18安装及设置静态ip
1.准备ubuntu16镜像2.安装:https://zhuanlan.zhihu.com/p/1447048653.安装ubuntu后,sudo passwd root这个命令建立root用户的密码 ...
- 为什么在重写 equals 方法的时候需要重写 hashCode 方法?
因为有强制的规范指定需要同时重写 hashcode 与 equal 是方法,许多容器类, 如 HashMap.HashSet 都依赖于 hashcode 与 equals 的规定.