10bet网址
MySQL 5.6参考手册
相关的文档10bet官方网站 本手册下载 本手册节选

第十七章复制

复制允许将一个MySQL数据库服务器(源)的数据复制到一个或多个MySQL数据库服务器(副本)。复制在默认情况下是异步的,因此副本不需要永久连接才能从源端接收更新。这意味着更新可以通过远程连接进行,甚至可以通过临时或间歇连接(如拨号服务)进行。根据配置的不同,您可以复制数据库中的所有数据库、选定的数据库甚至选定的表。

对于MySQL复制新手经常问的一些问题的答案,请参阅第A.14节“MySQL 5.6常见问题:复制”

在MySQL中复制的优点包括:

  • 向外扩展解决方案——将负载分散到多个副本中,以提高性能。在此环境中,所有写和更新都必须在复制源服务器上进行。然而,读取可能发生在一个或多个副本上。该模型可以提高写的性能(因为源是专门用于更新的),同时在不断增加的副本之间显著提高读取速度。

  • 数据安全——因为数据被复制到副本,副本可以暂停复制过程,所以可以在副本上运行备份服务,而不破坏源上的相应数据。

  • 分析——可以在源上创建实时数据,而对信息的分析可以在副本上进行,而不会影响源的性能。

  • 远程数据分发——如果分支机构希望使用您的主数据的副本,您可以使用复制来创建数据的本地副本以供使用,而不需要对源进行永久访问。

MySQL中的复制特性支持单向、异步复制,其中一个服务器作为源,而一个或多个其他服务器作为副本。这是相反的同步复制是NDB集群的一个特点第18章,MySQL NDB集群7.3和NDB集群7.4).在MySQL 5.6中,除了内置的异步复制外,还支持半同步复制接口。对于半同步复制,在返回执行事务的会话之前,在源块上执行提交操作,直到至少有一个副本确认它已经接收到事务的事件并将其记录下来。看到第17.3.9节“半同步复制”MySQL 5.6还支持延迟复制,这样复制服务器就会故意落后于源服务器至少一段指定的时间。看到第17.3.10节,“延迟复制”.的场景同步如果需要复制,请使用NDB集群(参见第18章,MySQL NDB集群7.3和NDB集群7.4).

有许多解决方案可用于设置两台服务器之间的复制,但最佳方法取决于数据的存在和所使用的引擎类型。有关可用选项的更多信息,请参见第17.1.1节“如何设置复制”

复制格式有两种核心类型,一种是基于语句的复制(SBR),它复制整个SQL语句,另一种是基于行的复制(RBR),它只复制更改的行。您也可以使用第三种,混合基础复制(MBR)。有关不同复制格式的更多信息,请参见第17.1.2节“复制格式”.在MySQL 5.6中,基于语句的格式是默认的。

MySQL 5.6.5及以上版本支持基于全局事务标识符(GTIDs)。在使用这种类型的复制时,不需要直接处理日志文件或这些文件中的位置,这大大简化了许多常见的复制任务。因为使用gtid的复制完全是事务性的,只要在源上提交的所有事务也应用在副本上,就可以保证源和副本之间的一致性。有关gtid和基于gtid的复制的详细信息,请参见第17.1.3节,“使用全局事务标识符的复制”

复制是通过许多不同的选项和变量来控制的。这些控制复制的核心操作、超时以及可以应用于数据库和表的数据库和过滤器。有关可用选项的更多信息,请参见第17.1.4节“复制和二进制日志选项和变量”

您可以使用复制来解决许多不同的问题,包括性能问题、支持不同数据库的备份问题,以及作为减轻系统故障的更大解决方案的一部分。有关如何解决这些问题的信息,请参见第17.3节“复制解决方案”

有关复制期间如何处理不同数据类型和语句的说明和提示,包括复制特性、版本兼容性、升级以及问题及其解决方法的详细信息(包括FAQ),请参见第17.4节“复制注意事项和提示”

有关复制的实现、复制的工作方式、二进制日志的过程和内容、后台线程以及用于决定语句如何记录和复制的规则的详细信息,请参见第17.2节“复制的实施”