This section explains 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 replicas; this means that it is not necessary when using GTIDs to refer to log files or positions within those files when starting a new replica or failing over to a new source, which greatly simplifies these tasks. Because GTID-based replication is completely transaction-based, it is simple to determine whether sources and replicas are consistent; as long as all transactions committed on a source are also committed on a replica, consistency between the two is guaranteed. You can use either statement-based or row-based replication with GTIDs (see Section 17.1.2, “Replication Formats”); however, for best results, we recommend that you use the row-based format.
This section discusses the following topics:
How GTIDs are defined and created, and how they are represented in the MySQL Server (see Section 18.104.22.168, “GTID Concepts”).
A general procedure for setting up and starting GTID-based replication (see Section 22.214.171.124, “Setting Up Replication Using GTIDs”).
Suggested methods for provisioning new replication servers when using GTIDs (see Section 126.96.36.199, “Using GTIDs for Failover and Scaleout”).
Restrictions and limitations that you should be aware of when using GTID-based replication (see Section 188.8.131.52, “Restrictions on Replication with GTIDs”).
A procedure for disabling GTIDs, which you must do if you have enabled GTIDs and are downgrading to a MySQL release that does not support GTIDs (see Section 184.108.40.206, “Disabling GTID Transactions”).
For information about MySQL Server options and variables relating to GTID-based replication, see Section 220.127.116.11, “Global Transaction ID Options and Variables”. See also Section 12.18, “Functions Used with Global Transaction IDs”, which describes SQL functions supported by MySQL 5.6 for use with GTIDs.
GTIDs are not compatible or supported with the
NDB storage engine used by NDB
Cluster. Enabling GTIDs in NDB Cluster is very likely to cause
NDB, and to cause NDB Cluster
Replication to fail as well.