19.1.3 复制 with Global Transaction Identifiers
本节解释了基于全局事务标识符(GTIDs)的事务复制。使用 GTIDs,每个事务都可以被标识和跟踪,以便在源服务器上提交和在副本服务器上应用;这意味着,在使用 GTIDs 时,不需要在启动新副本或故障转移到新源时引用日志文件或文件中的位置,这大大简化了这些任务。由于 GTID 基于事务的复制,因此可以轻松确定源服务器和副本服务器之间的一致性;只要在源服务器上提交的所有事务也在副本服务器上提交,就可以保证一致性。您可以使用语句或行基于的复制与 GTIDs(见Section 19.2.1, “Replication Formats”);然而,我们建议您使用行基于的格式以获得最佳结果。
GTIDs 总是被保留在源和副本之间。这意味着,您可以总是确定源服务器上提交的任何事务在副本服务器上的应用情况;在副本服务器上应用的任何事务都可以被忽略。因此,在源服务器上提交的事务可以在副本服务器上应用的次数不超过一次,这有助于保证一致性。
本节讨论以下主题:
-
GTID 的定义、创建和在 MySQL 服务器中的表示(见第19.1.3.1节,“GTID 格式和存储”)。
-
GTID 的生命周期(见第19.1.3.2节,“GTID 生命周期”)。
-
用于同步副本和源的自动定位函数(见第19.1.3.3节,“GTID 自动定位”)。
-
使用 GTID 的复制设置和启动的通用步骤(见第19.1.3.4节,“使用 GTID 设置复制”)。
-
使用 GTID 的新复制服务器配置方法(见第19.1.3.5节,“使用 GTID 进行故障转移和扩展”)。
-
使用 GTID 复制时需要注意的限制和限制(见第19.1.3.7节,“GTID 复制的限制”)。
-
可以用来操作 GTID 的存储函数(见第19.1.3.8节,“存储函数示例以操作 GTID”)。
关于 MySQL 服务器选项和变量,用于 GTID 复制的信息,请见第19.1.6.5节,“全局事务 ID 系统变量”。请参阅第14.18.2节,“与全局事务标识符(GTID)相关的函数”,它描述了 MySQL 8.4 中支持的 SQL 函数,以便与 GTID 一起使用。