Chapter 17 Replication

Table of Contents     

17.1 Replication Configuration     
17.2 Replication Implementation     
17.3 Replication Solutions     
17.4 Replication Notes and Tips     


复制让数据从一个MySQL 数据库服务器(master) 被复制到一个或者多个MySQL database servers(slaves).


复制默认是异步的,因此slaves 不需要被永久链接来结果更新从master.


这意味着 更新可以发生通过远距离的链接和甚至通过临时或者间接链接 比如拨号服务,


以来配置, 你可以复制所有的数据库,选择的数据库,甚至数据库里选择的表。


复制的优点 包括:

1.扩展解决方案-- 分散负载到多个slaves 来改善性能。在这种环境下,

所有的鞋和更新必须发生在master server上。

读,然而, 可以发生在一个或者多个slaves上。

这种模式可以改改善写的性能(因为master 是专注于updates),从而显著增加读速度随着越来越多的slaves


2.数据安全性,因为数据是复制到slaves, slave可以暂停复制过程,

是可以运行备份服务在lsave上 不需要影响master 数据


3.分析-- 现场数据可以被创建在master上,信息的分析可以在slave上进行 不会影响master的性能

4.远距离数据分发, 如果一个分支办公需要用一份主数据的副本进行工作,

你可以使用复制来创建一个逻辑的数据拷贝

复制在MySQL 功能支持单向, 异步复制, 其中一个服务器作为Master,同时其他一个或者多个作为slaves.


复制在MySQL 功能支持 单向,异步复制,一个服务器表现为master,其他一个或者多个作为slaves.


与之形成鲜明对比的是 同步复制 是MYSQL集群的新特性.


在MySQL 5.6,一个接口到半同步复制是支持的内置于异步复制

在半同步下,一个提交被执行在master上堵塞在返回到一个session 执行事务知道至少一个slave 确认它已经收到和记录了事务的信息

MySQL 5.6  也支持延迟复制 这样一个slave server 故意延迟落后master 至少一定的时间


有大量的可用的解决方案用于设置复制在2个servers之间, 但是最好的方式是取决于面前的数据和你使用的存储引擎




有两种核心的复制格式,基于语句的(SBR) ,复制整个SQL语句,

和基于行的复制(RBR), 只复制改变的记录。

你也可以使用第三种,混合模式(MBR).