加入收藏 | 设为首页 | 会员中心 | 我要投稿 佛山站长网 (https://www.0757zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

MySQL复制(1) 原理和架构 - MySQL教程

发布时间:2014-05-13 15:03:21 所属栏目:MySql教程 来源:站长网
导读:复制的架构 MySQL复制解决的基本问题是让一台服务器的数据与其它服务器保持同步,它具有如下的特征: 1)异步:这意味着,在同一时间点上备库的数据可能与主库
复制的架构

MySQL复制解决的基本问题是让一台服务器的数据与其它服务器保持同步,它具有如下的特征:

1)异步:这意味着,在同一时间点上备库的数据可能与主库不一致,并无法保证它们之间的延迟;

2)向后兼容:也就是说,备库的版本可以高于主库的版本,但不能低于主库的版本

下面是MySQL复制的架构图:

大致分为三个步骤:

1)主库所有的数据更改都记录到二进制日志

2)备库通过I/O线程把主库的二进制日志复制到备库的中继日志

3)备库通过SQL线程读取并应用中继日志

上面这种复制架构使得I/O线程和SQL线程可以异步进行,但也限制了复制的过程,其中最重要的一点是在主库上并发 运行的查询在备库上只能串行化执行,因为SQL线程只有一个,这是很多工作负载的性能瓶颈所在。

复制的原理

MySQL复制可分为基于语句的复制和基于行的复制,基于语句的复制(即逻辑复制)是指在备库上把主库执行过的SQL 重新执行一遍,它的优点是比较简单方便,但是性能不是很好,而且复制触发器和存储过程会出现很多问题。基于行的 复制(即物理复制)是指从主库的二进制日志中提取数据改变记录,相对来说,它更高效,但比较复杂。

由于没有哪种方式对所有情况都是完美的,MySQL能够在这两种复制方式间动态的切换,默认情况下使用基于语句的 复制,但如果发现语句无法正确的复制,就切换到基于行的复制。

查看本栏目更多精彩内容:http://www.bianceng.cn/database/MySQL/

(编辑:佛山站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读