16.1.3 Replication with Global Transaction Identifiers

16.1.3.1 GTID Concepts
16.1.3.2 Setting Up Replication Using GTIDs
16.1.3.3 Using GTIDs for Failover and Scaleout
16.1.3.4 Restrictions on Replication with GTIDs

In this section, we discuss transaction-based replication using global transaction identifiers (GTIDs), introduced in MySQL 5.6.5. When using GTIDs, each transaction can be identified and tracked as it is committed on the originating server and applied by any slaves; this means that it is not necessary when using GTIDs to refer to log files or positions within those files when starting a new slave or failing over to a new master, which greatly simplifies these tasks. Because GTID-based replication is completely transaction-based, it is simple to determine whether masters and slaves are consistent; as long as all transactions committed on a master are also committed on a slave, consistency between the two is guaranteed. You can use either statement-based or row-based replication with GTIDs (see Section 16.1.2, “Replication Formats”); however, for best results, we recommend that you use the row-based format.

The next few sections discuss the following topics:

For information about MySQL Server options and variables relating to GTID-based replication, see Section 16.1.4.5, “Global Transaction ID Options and Variables”. See also Section 12.15, “GTID Functions”, which describes SQL functions supported by MySQL 5.6 for use with GTIDs.