10bet网址
MySQL 8.0参考手册
相关的文档10bet官方网站 本手册下载 本手册摘录

第十七章复制

复制可以将来自一个MySQL数据库服务器(称为源)的数据复制到一个或多个MySQL数据库服务器(称为副本)。默认情况下复制是异步的;副本不需要永久连接就可以从源接收更新。根据配置的不同,您可以复制数据库中的所有数据库、选定的数据库,甚至是选定的表。

MySQL中复制的优点包括:

  • 扩展解决方案 - 将多个副本之间的负载传播以提高性能。在此环境中,所有写入和更新都必须在源服务器上进行。然而,读取可能会在一个或多个副本上进行。该模型可以提高写入的性能(由于源专用于更新),同时在越来越多的副本中大大提高了读取速度。

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

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

  • 远程数据分发—您可以使用复制来创建远程站点使用的数据的本地副本,而无需永久访问源。

有关如何在这种情况下使用复制的信息,请参阅第17.4节,“复制解决方案”

MySQL 8.0支持不同的复制方法。传统方法基于从源的二进制日志复制事件,并要求它们中的日志文件和位置在源和副本之间同步。基于的新方法全局事务标识符(GTID)是交易的,因此不需要使用这些文件中的日志文件或位置,这大大简化了许多常见的复制任务。只要在源上提出的所有事务都已应用于副本,使用GTIDS的复制保证了源和副本之间的一致性。有关MySQL中的GTID和基于GTID复制的更多信息,请参阅第17.1.3节,“使用全局事务标识符的复制”。有关使用基于基于二进制日志文件位置的复制的信息,请参阅第17.1节,“配置复制”

MySQL中的复制支持不同类型的同步。原始的同步类型是单向,异步复制,其中一个服务器充当源,而一个或多个其他服务器则作为副本。这与之相反同步复制是NDB集群的一个特征(参见第23章,MySQL NDB集群8.0)。在MySQL 8.0中,除了内置异步复制之外,还支持半同时复制。通过半同步复制,在返回执行事务的会话之前在源块上执行的提交,直到至少一个副本确认它已接收并记录事务的事件;看到第17.4.10节,“半异步复制”。MySQL 8.0还支持延迟复制,即一个副本故意比源延迟至少一段时间;看到第17.4.11节,“延迟复制”。的场景同步复制是必需的,使用NDB集群(参见第23章,MySQL NDB集群8.0)。

有许多解决方案可以用于设置服务器之间的复制,而最佳的使用方法取决于数据的存在情况和所使用的引擎类型。有关可用选项的更多信息,请参见第17.1.2节“设置基于二进制日志文件位置的复制”

复制格式有两种核心类型:基于语句的复制(SBR)和基于行的复制(RBR),前者复制整个SQL语句,后者只复制更改的行。您还可以使用第三种类型,混合基于复制(Mixed Based Replication, MBR)。有关不同复制格式的更多信息,请参见第17.2.1节“复制格式”

复制是通过许多不同的选项和变量控制的。有关更多信息,请参见第17.1.6节,“复制和二进制日志选项和变量”。可以将其他安全措施应用于复制拓扑,如中所述第17.3节,“复制安全”

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

有关复制过程中如何处理不同数据类型和语句的说明和技巧,包括复制特性、版本兼容性、升级和潜在问题及其解决方案的详细信息,请参见第17.5节,“复制笔记和提示”。有关MySQL Replication新手经常问的一些问题的答案,请参阅A.14节“MySQL 8.0常见问题:复制”

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