MySQL中主从复制的原理

MySQL中的复制:
复制解决的问题:让一台服务器的数据与其他服务器保持同步;
主库+备库【从库】;

基于行的复制:from V5.1;
基于语句的复制:逻辑复制,from V3.23
1.都是通过在主库上记录 二进制日志 ,在备库 重放日志 的方式来实现异步的数据复制;
2.复制 向后兼容 :新版本的服务器可以作为老版本服务器的备库,反过来可能就不行;
3. 开销 :启用二进制日志带来的开销,每个备库也会对主库增加一些负载(网络IO开销)。锁的竞争也可能阻碍事务的提交。从主库复制到多个备库,唤醒多个 复制线程 发送事件的开销将会累加。
4.通过复制可以将 读操作 指向备库来获得更好的读扩展;对于 写操作 除非设计得当,否则并不适合通过复制来扩展写操作。一主库多备库中,写操作会被执行多次,这时候系统性能取决于写入最慢的那部分。
5.一主库多备库架构时,可能会造成一些浪费。它会复制大量不必要的重复数据;
一个主库和10个备库,会有11份数据拷贝,并且这11台服务器缓存中存储了大部分相同的数据。
6.复制比较常见的用途:
数据分布 :复制通常 带宽 压力不大,但是 基于行 的复制会比传统的 基于语句 的复制模式的带宽压力更大;
负载均衡 :通过复制可以将读操作分布到多个服务器上,实现对 读密集 型的应用的优化;
简单的代码修改就可以实现基本的负载均衡;小规模的可以简单的对机器名硬编码或者DNS轮询(将一个机器名指向多个IP地址);
备份 :对于备份来说,复制是一项很有意义的技术补充,但是复制既不是备份也不是能够取代备份;
高可用性和故障切换 :避免单点失败;
MySQL升级测试 :更好版本的作为备库;

2. 复制的步骤:
2.1 把主库上数据更改记录到二进制日志(Binary Log)中( 二进制日志文件 );
2.2 备库将主库上的日志复制到自己的 中继日志中 (Relay Log);
2.3 备库读取中继日志中的事件,将其 重放到备库数据 之上;


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值