MySQL 8.0 参考手册  / 第十七章复制  / 17.1 配置复制  /  16.1.3 使用全局事务标识符进行复制

16.1.3 使用全局事务标识符进行复制

本节介绍使用全局事务标识符 的基于事务的复制 (GTID)。使用 GTID 时,可以识别和跟踪每个事务,因为它在原始服务器上提交并由任何副本应用;这意味着在启动新副本或故障转移到新源时,没有必要使用 GTID 来引用日志文件或这些文件中的位置,这大大简化了这些任务。因为基于GTID的复制是完全基于事务的,所以很容易判断源和副本是否一致;只要在源上提交的所有事务也在副本上提交,就可以保证两者之间的一致性。您可以将 statement-based 或 row-based 复制与 GTID 一起使用(请参阅第 16.2.1 节,“复制格式”); 但是,为了获得最佳效果,我们建议您使用基于行的格式。

GTID 始终保留在源和副本之间。这意味着您始终可以通过检查其二进制日志来确定应用于任何副本的任何事务的来源。此外,一旦在给定服务器上提交了具有给定 GTID 的事务,该服务器将忽略具有相同 GTID 的任何后续事务。因此,在源上提交的事务只能在副本上应用一次,这有助于保证一致性。

本节讨论以下主题:

有关与基于 GTID 的复制相关的 MySQL 服务器选项和变量的信息,请参阅 第 16.1.6.5 节,“全局事务 ID 系统变量”。另见 第 12.19 节,“与全局事务标识符 (GTID) 一起使用的函数”,它描述了 MySQL 5.7 支持的用于 GTID 的 SQL 函数。