Transaktionen replizieren mit GTIDs - Amazon Aurora

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Transaktionen replizieren mit GTIDs

Die folgenden gespeicherten Prozeduren steuern, wie Transaktionen mithilfe globaler Transaktions-Identifikatoren (GTIDs) mit Aurora MySQL repliziert werden. Informationen zur Verwendung der Replikation auf GTIDs Basis von Aurora MySQL finden Sie unterVerwenden der GTID-basierten Replikation.

mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL Version 3)

Konfiguriert die ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS-Option der CHANGE REPLICATION SOURCE TO-Anweisung. Dadurch weist der Replikationskanal replizierten Transaktionen, die keine haben, eine GTID zu. Auf diese Weise können Sie die Binärprotokollreplikation von einer Quelle aus, die keine GTID-basierte Replikation verwendet, zu einem Replikat, durchführen, das dies tut. Weitere Informationen finden Sie unter CHANGE REPLICATION SOURCE TO statement und Replication From a Source Without GTIDs to a Replica With GTIDs im MySQL-Referenzhandbuch.

Syntax

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

Parameters

gtid_option

Zeichenfolgenwert Die erlaubten Werte sind OFF, LOCAL, oder eine angegebene UUID.

Nutzungshinweise

Dieses Vorgehen hat die gleiche Wirkung wie das Absetzen der Anweisung CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option in Community MySQL.

GTID muss aktiviert werden, ON gtid_option um auf eine bestimmte UUID gesetzt zu LOCAL werden.

Der Standardwert ist OFF, was bedeutet, dass die Funktion nicht verwendet wird.

LOCAL weist eine GTID einschließlich der eigenen UUID des Replikats (der server_uuid-Einstellung) zu.

Das Übergeben eines Parameters, bei dem es sich um eine UUID handelt, weist eine GTID zu, die die angegebene UUID enthält, z. B. die server_uuid-Einstellung für den Replikationsquellserver.

Beispiele

So deaktivieren Sie diese Funktion:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('OFF'); +-------------------------------------------------------------+ | Message | +-------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: OFF | +-------------------------------------------------------------+ 1 row in set (0.07 sec)

So verwenden Sie die eigene UUID des Replikats:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('LOCAL'); +---------------------------------------------------------------+ | Message | +---------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: LOCAL | +---------------------------------------------------------------+ 1 row in set (0.07 sec)

So verwenden Sie eine angegebene UUID:

mysql> call mysql.rds_assign_gtids_to_anonymous_transactions('317a4760-f3dd-3b74-8e45-0615ed29de0e'); +----------------------------------------------------------------------------------------------+ | Message | +----------------------------------------------------------------------------------------------+ | ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS has been set to: 317a4760-f3dd-3b74-8e45-0615ed29de0e | +----------------------------------------------------------------------------------------------+ 1 row in set (0.07 sec)

mysql.rds_gtid_purged (Aurora-MySQL-Version 3)

Legt den globalen Wert der Systemvariablen gtid_purged auf einen bestimmten Satz von globalen Transaktionskennungen (GTID) fest. Die gtid_purged Systemvariable ist ein GTID-Satz, GTIDs der aus allen Transaktionen besteht, die auf dem Server festgeschrieben wurden, aber in keiner binären Protokolldatei auf dem Server existieren.

Es gibt zwei Möglichkeiten, den Wert gtid_purged festzulegen, um Kompatibilität mit MySQL 8.0 zu ermöglichen:

  • Ersetzen Sie den Wert gtid_purged durch Ihren angegebenen GTID-Set.

  • Fügen Sie Ihren angegebenen GTID-Satz an den GTID-Satz an, den gtid_purged bereits enthält.

Syntax

So ersetzen Sie den Wert gtid_purged durch Ihren angegebenen GTID-Satz:

CALL mysql.rds_gtid_purged (gtid_set);

So fügen Sie den Wert gtid_purged Ihrem angegebenen GTID-Satz an:

CALL mysql.rds_gtid_purged (+gtid_set);

Parameters

gtid_set

Der Wert von gtid_set muss eine Obermenge des aktuellen Werts von gtid_purged sein und darf sich nicht mit diesem überschneiden. gtid_subtract(gtid_executed,gtid_purged) Das heißt, der neue GTID-Satz muss alle enthalten GTIDs , die bereits vorhanden warengtid_purged, und darf keine GTID-Sätze enthaltengtid_executed, die noch nicht gelöscht wurden. GTIDs Der gtid_set Parameter darf auch keine Daten enthalten GTIDs , die sich im globalen gtid_owned Satz befinden, d. h. GTIDs für Transaktionen, die derzeit auf dem Server verarbeitet werden.

Nutzungshinweise

Die Prozedur mysql.rds_gtid_purged muss vom Hauptbenutzer ausgeführt werden.

Diese Prozedur wird für Aurora-MySQL-Version 3.04 und höher unterstützt.

Beispiele

Im folgenden Beispiel wird die GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23 der globalen Variable gtid_purged zugewiesen.

CALL mysql.rds_gtid_purged('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_skip_transaction_with_gtid (Aurora MySQL Version 2 und 3)

Überspringt die Replikation einer Transaktion mit der angegebenen globalen Transaktionskennung (GTID) auf einer primären Instance von Aurora.

Sie können dieses Verfahren für die Notfallwiederherstellung verwenden, wenn eine bestimmte GTID-Transaktion bekanntermaßen ein Problem verursacht. Verwenden Sie diese gespeicherte Prozedur, um die problematische Transaktion zu überspringen. Problematisch sind beispielsweise Transaktionen, die die Replikation deaktivieren, wichtige Daten löschen oder dafür sorgen, dass die DB-Instance nicht mehr verfügbar ist.

Syntax

CALL mysql.rds_skip_transaction_with_gtid ( gtid_to_skip );

Parameters

gtid_to_skip

Die GTID der zu überspringenden Replikationstransaktion.

Nutzungshinweise

Die Prozedur mysql.rds_skip_transaction_with_gtid muss vom Hauptbenutzer ausgeführt werden.

Diese Prozedur wird für Aurora-MySQL-Version 2 und 3 unterstützt.

Beispiele

Im folgenden Beispiel wird die Replikation der Transaktion mit der GTID übersprunge 3E11FA47-71CA-11E1-9E33-C80AA9429562:23.

CALL mysql.rds_skip_transaction_with_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');

mysql.rds_start_replication_until_gtid (Aurora MySQL Version 3)

Initiiert die Replikation von einer/einem Aurora-MySQL-DB-Cluster und stoppt die Replikation unmittelbar nach der angegebenen globalen Transaktionskennung (GTID).

Syntax

CALL mysql.rds_start_replication_until_gtid(gtid);

Parameters

gtid

Die GTID, nach der die Replikation stoppen soll.

Nutzungshinweise

Die Prozedur mysql.rds_start_replication_until_gtid muss vom Hauptbenutzer ausgeführt werden.

Diese Prozedur wird für Aurora-MySQL-Version 3.04 und höher unterstützt.

Die gespeicherte Prozedur mysql.rds_start_replication_until_gtid wird für die verwaltete Replikation nicht unterstützt, darunter Folgendes:

Wenn der Parameter gtid eine Transaktion angibt, die bereits von dem Replikat ausgeführt wurde, wird die Replikation sofort gestoppt.

Beispiele

Das folgende Beispiel initiiert die Replikation und repliziert die Änderungen, bis die GTID erreicht wir 3E11FA47-71CA-11E1-9E33-C80AA9429562:23.

call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');