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 My. SQL Per informazioni su come utilizzare la replica basata su GTIDs Aurora SQL My, consulta. Utilizzo della replica basata su GTID

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

Sintassi

CALL mysql.rds_assign_gtids_to_anonymous_transactions(gtid_option);

Parametri

gtid_option

Valore di stringa. I valori consentiti sono OFFLOCAL, 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 = gtid_option nella comunità MySQL.

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.

LOCALassegna un valore GTID incluso quello della replica UUID (l'server_uuidimpostazione).

Il passaggio di un parametro che è un UUID assegna un valore GTID che include quanto specificatoUUID, ad esempio l'server_uuidimpostazione 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 di gtid_purged e non può intersecarsi con. gtid_subtract(gtid_executed,gtid_purged) Cioè, il nuovo GTID set deve includere quelli già presenti GTIDs gtid_purged e non può includere quelli gtid_executed che non sono ancora GTIDs stati eliminati. Il gtid_set inoltre, il parametro non può includere GTIDs quelli presenti nel gtid_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');