Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Replica delle transazioni utilizzando GTIDs
Le seguenti stored procedure controllano il modo in cui le transazioni vengono replicate utilizzando gli identificatori di transazione globali (GTIDs) con Aurora My. SQL Per informazioni su come utilizzare la replica basata su GTIDs Aurora SQL My, consulta. Utilizzo della replica GTID basata
Argomenti
mysql.rds_assign_gtids_to_anonymous_transactions (Aurora My versione 3) SQL
Configura l'opzione ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS
dell'istruzione CHANGE REPLICATION SOURCE TO
. Fa sì che il canale di replica assegni un GTID alle transazioni replicate che non ne hanno una. In questo modo, è possibile eseguire la replica binaria dei log da un'origine che non utilizza la replica GTID basata su una replica che la utilizza. Per ulteriori informazioni, vedere CHANGEREPLICATIONSOURCETO Statement and Replication From a
Sintassi
CALL mysql.rds_assign_gtids_to_anonymous_transactions(
gtid_option
);
Parametri
-
gtid_option
-
Valore di stringa. I valori consentiti sono
OFF
LOCAL
, o sono specificati. UUID
Note per l'utilizzo
Questa procedura ha lo stesso effetto del rilascio della dichiarazione CHANGE REPLICATION SOURCE TO
ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS =
nella comunità MySQL.gtid_option
GTIDdeve essere rivolto a ON
gtid_option
da impostare su LOCAL
o in modo specificoUUID.
Il valore predefinito è OFF
, il che significa che la funzione non viene utilizzata.
LOCAL
assegna un valore GTID incluso quello della replica UUID (l'server_uuid
impostazione).
Il passaggio di un parametro che è un UUID assegna un valore GTID che include quanto specificatoUUID, ad esempio l'server_uuid
impostazione per il server di origine della replica.
Esempi
Per disattivare questa funzione:
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)
Per utilizzare quello proprio della replica: 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)
Per utilizzare uno specificoUUID:
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 My versione 3) SQL
Imposta il valore globale della variabile di sistema su un determinato set gtid_purged
di identificatori di transazione globali (). GTID La variabile di gtid_purged
sistema è un GTID set composto da tutte le transazioni che sono state eseguite sul server, ma che non esistono in alcun file di registro binario sul server. GTIDs
Per consentire la compatibilità con My SQL 8.0, esistono due modi per impostare il valore digtid_purged
:
-
Sostituisci il valore di
gtid_purged
con il GTID set specificato. -
Aggiunge il GTID set specificato al GTID set che
gtid_purged
già contiene.
Sintassi
Per sostituire il valore di gtid_purged
con il GTID set specificato:
CALL mysql.rds_gtid_purged (
gtid_set
);
Per aggiungere il valore di gtid_purged
al GTID set specificato:
CALL mysql.rds_gtid_purged (+
gtid_set
);
Parametri
gtid_set
-
Il valore di
gtid_set
deve essere un superset del valore corrente digtid_purged
e non può intersecarsi con.gtid_subtract(gtid_executed,gtid_purged)
Cioè, il nuovo GTID set deve includere quelli già presenti GTIDsgtid_purged
e non può includere quelligtid_executed
che non sono ancora GTIDs stati eliminati. Ilgtid_set
inoltre, il parametro non può includere GTIDs quelli presenti nelgtid_owned
set globale, vale a dire GTIDs per le transazioni attualmente in fase di elaborazione sul server.
Note per l'utilizzo
La procedura mysql.rds_gtid_purged
deve essere eseguita dall'utente master.
Questa procedura è supportata per Aurora My SQL versione 3.04 e successive.
Esempi
L'esempio seguente assegna la GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23
alla variabile globale. gtid_purged
CALL mysql.rds_gtid_purged('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');
mysql.rds_skip_transaction_with_gtid (Aurora My versione 2 e 3) SQL
Salta la replica di una transazione con l'identificatore di transazione globale specificato (GTID) su un'istanza primaria Aurora.
È possibile utilizzare questa procedura per il disaster recovery quando è noto che una GTID transazione specifica causa un problema. Usa questa stored procedure per saltare la transazione problematica. Esempi di transazioni problematiche includono le transazioni che disabilitano la replica, eliminano dati importanti o con le quali l'istanza database diventa non disponibile.
Sintassi
CALL mysql.rds_skip_transaction_with_gtid (
gtid_to_skip
);
Parametri
-
gtid_to_skip
-
La transazione GTID di replica da saltare.
Note per l'utilizzo
La procedura mysql.rds_skip_transaction_with_gtid
deve essere eseguita dall'utente master.
Questa procedura è supportata per Aurora My SQL versione 2 e 3.
Esempi
L'esempio seguente salta la replica della transazione con. GTID 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 La mia versione 3) SQL
Avvia la replica da un cluster instance e interrompe la SQL replica immediatamente dopo l'identificatore di transazione globale specificato (). GTID
Sintassi
CALL mysql.rds_start_replication_until_gtid(
gtid
);
Parametri
-
gtid
-
GTIDDopodiché la replica deve interrompersi.
Note per l'utilizzo
La procedura mysql.rds_start_replication_until_gtid
deve essere eseguita dall'utente master.
Questa procedura è supportata per Aurora My SQL versione 3.04 e successive.
La mysql.rds_start_replication_until_gtid
stored procedure non è supportata per la replica gestita, che include quanto segue:
Quando il parametro gtid
specifica una transazione che è già stata eseguita dalla replica, la procedura viene arrestata immediatamente.
Esempi
L'esempio seguente avvia la replica e replica le modifiche fino a quando non raggiunge il risultato. GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23
call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');