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.
Themen
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
Syntax
CALL mysql.rds_assign_gtids_to_anonymous_transactions(
gtid_option
);
Parameter
-
gtid_option
-
Zeichenfolgenwert Die zulässigen Werte sind
OFF
LOCAL
, 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 =
in der Community MySQL.gtid_option
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.
LOCAL
weist 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 darfgtid_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 Toolgtid_set
Der Parameter darf auch keine Daten enthaltenGTIDs, die sich in der globalengtid_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');