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 MySQL. Per informazioni su come utilizzare la replica basata su GTIDs Aurora MySQL, consulta. Utilizzo della replica basata su GTID
Argomenti
mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL versione 3)
Configura l'opzione ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS dell'istruzione CHANGE REPLICATION SOURCE TO. Il canale di replica assegna così un GTID alle transazioni replicate che non ne hanno uno. In questo modo, è possibile eseguire la replica del log binario da un'origine che non utilizza la replica basata su GTID in una replica che lo usa. Per ulteriori informazioni, vedere CHANGE REPLICATION SOURCE TO Statement and Replication From a
Sintassi
CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);
Parameters
-
gtid_option -
Valore di stringa. I valori consentiti sono
OFF,LOCALo un UUID specificato.
Note per l’utilizzo
Questa procedura ha lo stesso effetto del rilascio dell'istruzione CHANGE
REPLICATION SOURCE TO ASSIGN_GTIDS_TO_ANONYMOUS_TRANSACTIONS =
nella community MySQL.gtid_option
GTID deve essere impostato su o su un ON UUID specifico. gtid_option LOCAL
Il valore predefinito è OFF, il che significa che la funzione non viene utilizzata.
LOCAL assegna un GTID incluso l'UUID della replica (l'impostazione server_uuid).
Il passaggio di un parametro che è un UUID assegna un GTID che include l'UUID specificato, ad esempio l'impostazione server_uuid per il server di fonte di 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 l'UUID della replica:
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 un UUID specificato:
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 versione 3)
Imposta il valore globale della variabile di sistema gtid_purged su un set di ID globali di transazione (GTID) specificato. La variabile di gtid_purged sistema è un set GTID 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 MySQL 8.0, esistono due modi per impostare il valore di gtid_purged:
-
Sostituire il valore di
gtid_purgedcon il set di GTID specificato. -
Aggiungere il set di GTID specificato al set di GTID già contenuto in
gtid_purged.
Sintassi
Per sostituire il valore di gtid_purged con il set di GTID specificato:
CALL mysql.rds_gtid_purged (gtid_set);
Per aggiungere il valore di gtid_purged con al set di GTID specificato:
CALL mysql.rds_gtid_purged (+gtid_set);
Parameters
gtid_set-
Il valore di
gtid_setdeve essere un superset del valore corrente digtid_purgede non può intersecarsi con.gtid_subtract(gtid_executed,gtid_purged)Cioè, il nuovo set GTID deve includere quelli già presenti GTIDsgtid_purgede non può includere quelligtid_executedche non sono ancora GTIDs stati eliminati. Inoltre, ilgtid_setparametro non può includere GTIDs quelli presenti nelgtid_ownedset globale, vale a dire GTIDs per le transazioni attualmente in corso 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 MySQL versione 3.04 e successive.
Esempi
L'esempio seguente assegna il 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 MySQL versione 2 e 3)
Ignora la replica di una transazione con l'ID globale di transazione (GTID) specificato in un'istanza primaria Aurora.
Puoi usare questa procedura per il ripristino di emergenza quando è noto che una specifica transazione GTID 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);
Parameters
-
gtid_to_skip -
GTID della transazione di replica da ignorare.
Note per l'utilizzo
La procedura mysql.rds_skip_transaction_with_gtid deve essere eseguita dall’utente master.
Questa procedura è supportata per Aurora MySQL versione 2 e 3.
Esempi
Nell'esempio seguente viene ignorata la replica della transazione con il 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 MySQL versione 3)
Avvia la replica da un cluster di database Aurora MySQL e la arresta immediatamente dopo l'ID globale di transazione (GTID) specificato.
Sintassi
CALL mysql.rds_start_replication_until_gtid(gtid);
Parameters
-
gtid -
Il GTID dopo il quale deve essere arrestata la replica.
Note per l'utilizzo
La procedura mysql.rds_start_replication_until_gtid deve essere eseguita dall’utente master.
Questa procedura è supportata per Aurora MySQL versione 3.04 e successive.
La stored procedure mysql.rds_start_replication_until_gtid 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 finché non raggiunge il GTID 3E11FA47-71CA-11E1-9E33-C80AA9429562:23.
call mysql.rds_start_replication_until_gtid('3E11FA47-71CA-11E1-9E33-C80AA9429562:23');