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 My repliziert werden. SQL Informationen zur Verwendung der Replikation auf GTIDs Basis von Aurora My SQL finden Sie unterVerwenden der GTID basierten Replikation.

mysql.rds_assign_gtids_to_anonymous_transactions (Aurora Meine Version 3) SQL

Konfiguriert die ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS-Option der CHANGE REPLICATION SOURCE TO-Anweisung. Dadurch weist der Replikationskanal replizierten TransaktionenGTID, für die es noch keinen gibt, a zu. Auf diese Weise können Sie die binäre Protokollreplikation von einer Quelle, die keine GTID basierte Replikation verwendet, zu einem Replikat durchführen, das dies tut. Weitere Informationen finden Sie unter CHANGEREPLICATIONSOURCETO-Anweisung und Replikation von einer Quelle ohne GTIDs zu einem Replikat mit GTIDs im Handbuch Meine SQL Referenz.

Syntax

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

Parameter

gtid_option

Zeichenfolgenwert Die zulässigen Werte sind OFFLOCAL, oder ein bestimmter UUID Wert.

Nutzungshinweise

Dieses Verfahren hat dieselbe Wirkung wie die Ausgabe der Erklärung CHANGE REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS = gtid_option in der Community MySQL.

GTIDmuss an folgende Adresse gewandt ON werden gtid_option auf LOCAL oder auf einen bestimmten Wert eingestellt werdenUUID.

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

LOCALweist dem GTID Replikat eine eigene zu UUID (die server_uuid Einstellung).

Wenn Sie einen Parameter übergeben, der a ist, wird ein Parameter UUID zugewiesenGTID, der den angegebenen Wert enthältUUID, 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)

Um das eigene Replikat zu verwenden: UUID

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)

Um ein bestimmtes UUID zu verwenden:

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 Meine Version 3) SQL

Setzt den globalen Wert der Systemvariablen gtid_purged auf einen bestimmten Satz globaler Transaktions-Identifikatoren (GTID). 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 vorhanden sind.

Um die Kompatibilität mit My SQL 8.0 zu gewährleisten, gibt es zwei Möglichkeiten, den Wert von festzulegengtid_purged:

  • Ersetzen Sie den Wert von gtid_purged durch den angegebenen GTID Satz.

  • Hängt den angegebenen GTID Satz an den GTID Satz an, der gtid_purged bereits enthält.

Syntax

Um den Wert von durch den angegebenen GTID Satz zu gtid_purged ersetzen:

CALL mysql.rds_gtid_purged (gtid_set);

Um den Wert von gtid_purged an den angegebenen GTID Satz anzuhängen:

CALL mysql.rds_gtid_purged (+gtid_set);

Parameter

gtid_set

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

Nutzungshinweise

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

Dieses Verfahren wird für Aurora My SQL Version 3.04 und höher unterstützt.

Beispiele

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

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

mysql.rds_skip_transaction_with_gtid (Aurora My Version 2 und 3) SQL

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

Sie können dieses Verfahren für die Notfallwiederherstellung verwenden, wenn bekannt ist, dass eine bestimmte GTID Transaktion 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 );

Parameter

gtid_to_skip

Die GTID Replikationstransaktion, die übersprungen werden soll.

Nutzungshinweise

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

Dieses Verfahren wird für Aurora My SQL Version 2 und 3 unterstützt.

Beispiele

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

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

mysql.rds_start_replication_until_gtid (Aurora Meine Version 3) SQL

Initiiert die Replikation von einem Aurora aus und stoppt die Replikation unmittelbar nach der angegebenen globalen Transaktions-ID (GTID).

Syntax

CALL mysql.rds_start_replication_until_gtid(gtid);

Parameter

gtid

GTIDDanach soll die Replikation beendet werden.

Nutzungshinweise

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

Dieses Verfahren wird für Aurora My SQL Version 3.04 und höher unterstützt.

Die mysql.rds_start_replication_until_gtid gespeicherte Prozedur wird für die verwaltete Replikation nicht unterstützt. Sie umfasst 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 sie erreicht sind. GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23

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