本节解释基于事务复制使用全局事务标识符(GTIDs)。使用GTIDs时,每笔交易可以被识别和跟踪是在原始服务器和应用的任何副本;这意味着没有必要当使用GTIDs引用日志文件或位置在这些文件当开始一个新的副本或故障转移到一个新的来源,极大地简化了这些任务。因为GTID-based复制完全是基于事务,它是简单的确定来源和副本是否一致;只要所有事务提交源也承诺一个复制品,两者之间的一致性是保证。您可以使用与GTIDs statement-based或基于行的复制16.2.1部分,“复制格式”);然而,为达到最佳效果,我们建议您使用基于行的格式。
GTIDs总是保存源和副本之间。这意味着,你可以为任何事务应用于确定源副本通过检查它的二进制日志。此外,一旦一个事务与给定GTID给定服务器上承诺,任何后续事务拥有相同的GTID由该服务器将被忽略。因此,源可以应用上的一个事务提交不超过一次副本,这有助于保证一致性。
本节讨论下列主题:
GTIDs是如何定义和创建,以及他们如何在一个MySQL服务器(看到了吗部分16.1.3.1,“GTID格式和存储”)。
的生命周期GTID(见部分16.1.3.2,“GTID生命周期”)。
同步的auto-positioning函数使用GTIDs(参见的副本和源部分16.1.3.3”GTID Auto-Positioning”)。
一个通用程序设置和开始GTID-based复制(见部分16.1.3.4,“使用GTIDs设置复制”)。
建议的方法提供新的复制服务器在使用GTIDs(见部分16.1.3.5”,使用故障转移和Scaleout GTIDs”)。
限制和局限性,你应该意识到当使用GTID-based复制(见部分16.1.3.6,“与GTIDs限制复制”)。
存储函数,您可以使用与GTIDs(见部分16.1.3.7,“存储函数的例子来操纵GTIDs”)。
MySQL服务器选项和信息变量有关GTID-based复制,明白了部分16.1.6.5,“全局事务ID系统变量”。另请参阅12.19节,“功能使用全局事务标识符(GTIDs)”用于描述SQL函数支持MySQL 5.7 GTIDs使用。