Mysql-复制概述(一)

1.复制的概述

Mysql支持两种复制方式,基于行的复制和基于语句的复制。 这两种方式都是通过在主库上记录二进制日志、在备库重放日志的方式来实现异步的数据复制。

在同一时间点备库上的数据可能与主库存在不一致,并且无法保证主备之间的延迟。

复制通常不会增加主库的开销,主要是启用二进制日志带来的开销,但是出于备份或及时从崩溃中回复的目的,这点开销是必要的。

通过复制可以将读操作指向备库来获得更好读读扩展。写操作一般都是在主库上写。在一主库多备库读架构中,写操作会被执行多次,这时候整个系统读性能取决于写入最慢读那部分。

常见读复制方案:

  • 主 -备 -备:一个备库从主库copy数据,其余读备库从备库中copy数据。
  • 主- 备 :所有读备库从主库中copy数据。

2.复制解决读问题

  • 数据分布:将数据分布在不同读数据中心中。
  • 负载均衡:通过Mysql复制可以将读操作分布到多个服务器上,实现对密集型应用对优化,并且实现很方便,通过简单对代码修改就能实现基本对负载均衡。
  • 备份:复制是备份对补充,但复制不是备份也不能取消备份。
  • 高可用性和故障切换:避免单点失败,设计良好但故障切换
  • MySql 升级测试:保证读写的按预期实现。

3.复制如何工作

  • 3.1 在主库上把数据更改记录到二进制日志(Binary Log)中。
  • 3.2 备库将主库的日志复制到自己的中继日志(Relay Log)中。
  • 3.3 备库读取中继日志的事件,将其重放到备库数据之上。

这种复制架构实现了获取事件和重放事件的解耦,允许这两个过程异步进行。但是也限制了复制过程,最重要的就是主库上并发运行的查询在备库上只能串行化执行。因为只有一个SQL线程来重放中继日志中的事件。

转载于:https://my.oschina.net/u/3421984/blog/3102116

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值