Oracle GoldenGate Features to Support MySQL Group Replication

The following are Oracle GoldenGate features required to support capture from a MySQL database Group Replication instance.

CSN Format

The Extract for MySQL Group Replication uses a new CSN format that is based on the Group Replication Global Transaction ID. This CSN format should be used with ATCSN and AFTERCSN when manually positioning a MySQL Group Replication Extract or Replicat whose source trail was generated by a MySQL Group Replication Extract.

An example of the sequence used in group replication capture is:
00000000000000000001:f77024f9-f4e3-11eb-a052-0021f6e03f10:0000000000000010654

In this sequence, the Oracle GoldenGate sequence number is 00000000000000000001 and the GTID is f77024f9-f4e3-11eb-a052-0021f6e03f10:0000000000000010654.

Extended Checkpoint Support

The Extract for MySQL Group Replication includes an extended checkpoint file in addition to the core Extract checkpoint file. The extended checkpoint file is created in the same checkpoint directory where the core checkpoint and has a cpex extension after the name of the capture group for example, extmysql.cpex.

This file is created when Extract starts and is deleted when Extract is deleted and should not be edited.

Using GTID-based Extract
If gtid_mode is enabled in MySQL database, then Oracle GoldenGate Extract for MySQL automatically starts using the GTID-based recovery mechanism and extended checkpoint, which enables it to support failover and recovery. There is no extra parameter required for the Extract.

Note:

If not using Group Replication, it is recommended to disable gtid_mode on the source MySQL database. This will return the Extract’s capture behavior to using the log number and offset method.
Position by GTID set in Oracle GoldenGate GTID-based Extract for MySQL

A new position type positiob by GTID set is added in the GTID-based Extract for MySQL. Positioning by the GTID set is supported only for GTID-based capture in MySQL.

An introduction to the GTIDs and the GTID set can be found in MySQL database documentation:

https://dev.mysql.com/doc/refman/8.0/en/replication-gtids-concepts.html

The MySQL supported sources for this feature are MySQL Server 8.0, MySQL Server 5.7, and MySQL Database Service (MDS).

The maximum supported GTID set size is 64 KB.

See ADD EXTRACT and ALTER EXTTRAIL for details on the GTIDSET parameter usage.

Also see REST API Example for GTIDSET parameter.