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 tramite GTID
Le stored procedure seguenti controllano il modo in cui le transazioni vengono replicate utilizzando gli ID globali di transazione (GTID) con Aurora MySQL. Per informazioni su come utilizzare la replica basata su GTID con 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, consulta MODIFICA ORIGINE REPLICA A istruzione
Sintassi
CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);
Parametri
-
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 rivolto a ON per gtid_option da impostare su LOCAL o un UUID specifico.
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 sistema gtid_purged è un set di GTID composto dai GTID di tutte le transazioni che sono state eseguite sul server, ma che non esistono in nessun file di log binario sul server.
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);
Parametri
gtid_set-
Il valore di
gtid_setdeve essere un superset del valore corrente digtid_purgede non può intersecarsi congtid_subtract(gtid_executed,gtid_purged). In altre parole, il nuovo set di GTID deve includere tutti i GTID già presenti ingtid_purgede non può includere ingtid_executedalcun GTID che non è ancora stato rimosso. Inoltre, il parametrogtid_setnon può includere gli eventuali GTID presenti nel setgtid_ownedglobale, i GTID 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 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);
Parametri
-
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);
Parametri
-
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');