Replica delle transazioni tramite GTID - Amazon Aurora

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.

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 e Replica da una fonte senza GTID a una replica con GTID nel Manuale di riferimento MySQL.

Sintassi

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

Parametri

gtid_option

Valore di stringa. I valori consentiti sono OFF, LOCAL o 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 = gtid_option nella community MySQL.

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_purged con 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_set deve essere un superset del valore corrente di gtid_purged e non può intersecarsi con gtid_subtract(gtid_executed,gtid_purged). In altre parole, il nuovo set di GTID deve includere tutti i GTID già presenti in gtid_purged e non può includere in gtid_executed alcun GTID che non è ancora stato rimosso. Inoltre, il parametro gtid_set non può includere gli eventuali GTID presenti nel set gtid_owned globale, 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');