Replica delle transazioni utilizzando GTIDs - 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 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

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 Source Without GTIDs to a Replica With GTIDs nel MySQL Reference Manual.

Sintassi

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

Parameters

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 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_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);

Parameters

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) Cioè, il nuovo set GTID deve includere quelli già presenti GTIDs gtid_purged e non può includere quelli gtid_executed che non sono ancora GTIDs stati eliminati. Inoltre, il gtid_set parametro non può includere GTIDs quelli presenti nel gtid_owned set 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');