Utilizzo della replica basata su 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à.

Utilizzo della replica basata su GTID

Il seguente contenuto spiega come utilizzare gli identificatori di transazione globali (GTID) con la replica di log binari (binlog) . tra un cluster Aurora MySQL e una fonte esterna.

Nota

Per Aurora, puoi utilizzare questa caratteristica solo con i cluster Aurora MySQL che utilizzano la replica basata sui registri binari verso o da un database MySQL esterno. L'altro database può essere un'istanza Amazon RDS MySQL, un database MySQL On-Premise o un cluster di database Aurora in una Regione AWS diversa. Per sapere come configurare questo tipo di replica, consultare Replica tra Aurora e MySQL o tra Aurora e un altro cluster di database Aurora (replica dei log binari).

Se utilizzi la replica binlog e non hai familiarità con la replica basata su GTID con MySQL, consulta Replica con identificatori di transazione globali nella documentazione di MySQL.

La replica basata su GTID è supportata per Aurora MySQL versione 2 e 3.

Identificatori globali di transazione (GTID)

Gli identificatori globali di transazione (GTID) sono identificatori univoci generati per le transazioni MySQL sottoposte a commit. Puoi utilizzare i GTID per semplificare la replica basata sui log binari e facilitare la risoluzione dei problemi.

Nota

Quando Aurora sincronizza i dati tra le istanze database in un cluster, tale meccanismo di replica non coinvolge i log binari (binlog). Per Aurora MySQL, la replica basata su GTID si applica solo quando si utilizza anche la replica basata sui log binari per replicare un database esterno compatibile con MySQL verso o da un cluster di database di Aurora MySQL.

MySQL utilizza due diversi tipi di transazioni per la replica basata sui log binari:

  • Transazioni GTID – Transazioni identificate da un GTID.

  • Transazioni anonime – Transazioni a cui non è assegnato un GTID.

In una configurazione di replica, i GTID sono univoci in tutte le istanze database. I GTID semplificano la configurazione della replica perché, quando vengono utilizzati, non è necessario fare riferimento alle posizioni nel file di log. I GTID semplificano anche la registrazione delle transazioni replicate e verificano che l’istanza di origine e le repliche siano coerenti.

In genere si utilizza la replica basata su GTID con Aurora durante la replica da un database esterno compatibile con MySQL verso un cluster Aurora. Puoi configurare questa configurazione di replica come parte di una migrazione da un database locale o Amazon RDS verso Aurora MySQL. Se il database esterno utilizza già i GTID, l'abilitazione della replica basata su GTID per il cluster Aurora semplifica il processo di replica.

Configuri la replica basata su GTID per un cluster Aurora MySQL impostando innanzitutto i parametri di configurazione rilevanti in un gruppo di parametri del cluster di database. Quindi associ tale gruppo di parametri al cluster.

Parametri per la replica basata su GTID

Utilizzare i parametri seguenti per configurare la replica basata su GTID.

Parametro Valori validi Descrizione

gtid_mode

OFF, OFF_PERMISSIVE, ON_PERMISSIVE, ON

OFF indica che le nuove transazioni sono anonime, ovvero non hanno GTID, e che una transazione deve essere anonima per poter essere replicata.

OFF_PERMISSIVE indica che le nuove transazioni sono anonime, ma tutte le transazioni possono essere replicate.

ON_PERMISSIVE indica che le nuove transazioni hanno GTID assegnati, ma tutte le transazioni possono essere replicate.

ON indica che le nuove transazioni hanno GTID assegnati e che una transazione deve avere un GTID per poter essere replicata.

enforce_gtid_consistency

OFF, ON, WARN

OFF consente alle transazioni di violare la coerenza GTID.

ON impedisce alle transazioni di violare la coerenza GTID.

WARN consente alle transazioni di violare la consistenza GTID, ma genera un avviso quando si verifica una violazione.

Nota

Nel, il parametro appare come. AWS Management Consolegtid_mode gtid-mode

Per la replica basata su GTID, utilizza queste impostazioni per il gruppo di parametri del cluster di database per il cluster di database Aurora MySQL:

  • ON e ON_PERMISSIVE si applicano solo alla replica in uscita da un cluster Aurora MySQL. Entrambi questi valori fanno sì che il cluster di database Aurora utilizzi i GTID per le transazioni replicate su un database esterno. ON richiede che anche il database esterno utilizzi la replica basata su GTID. Per ON_PERMISSIVE la replica basata su GTID è opzionale sul database esterno.

  • OFF_PERMISSIVE, se impostato, significa che il cluster di database Aurora può accettare la replica in ingresso da un database esterno. Possono farlo indipendentemente dal fatto che il database esterno utilizzi la replica basata su GTID o meno.

  • OFF, se impostato, significa che il cluster di database Aurora accetta solo la replica in ingresso da database esterni che non utilizzano la replica basata su GTID.

Suggerimento

La replica in ingresso è lo scenario di replica basata sui log binari più comune per i cluster Aurora MySQL. Per la replica in ingresso, ti consigliamo di impostare la modalità GTID su OFF_PERMISSIVE. Questa impostazione consente la replica in ingresso da database esterni indipendentemente dalle impostazioni GTID dell'origine della replica.

Per ulteriori informazioni sui gruppi di parametri, consultare Utilizzo di gruppi di parametri.

Configurazione della replica basata su GTID per un cluster Aurora MySQL

Quando la replica basata su GTID è abilitata per un cluster di database Aurora MySQL, le impostazioni GTID si applicano sia alla replica basata sui log binari in ingresso che a quella in uscita.

Per abilitare la replica basata su GTID per un cluster Aurora MySQL
  1. Creare o modificare un gruppo di parametri del cluster di database utilizzando le seguenti impostazioni dei parametri:

    • gtid_modeON o ON_PERMISSIVE

    • enforce_gtid_consistencyON

  2. Associare il gruppo di parametri del cluster di database al cluster Aurora MySQL. A tale scopo, seguire la procedura descritta in Utilizzo di gruppi di parametri.

  3. (Facoltativo) Specifica come assegnare i GTID alle transazioni che non li includono. Per eseguire questa operazione, chiama la procedura archiviata in mysql.rds_assign_gtids_to_anonymous_transactions (Aurora MySQL versione 3).

Disabilitazione della replica basata su GTID per un cluster DB Aurora MySQL

Puoi disabilitare la replica basata su GTID per un cluster di database Aurora MySQL. Ciò significa che il cluster Aurora non può eseguire la replica basata sui log binari in ingresso o in uscita con database esterni che utilizzano la replica basata su GTID. .

Nota

Nella seguente procedura, replica di lettura indica la destinazione della replica in una configurazione Aurora con replica basata sui log binari verso o da un database esterno. Non indica istanze database di replica a sola lettura di Aurora. Ad esempio, quando un cluster Aurora accetta la replica in ingresso da un'origine esterna, l'istanza primaria Aurora funge da replica di lettura per la replica basata sui log binari.

Per ulteriori dettagli sulle procedure memorizzate citate in questa sezione, consultare Procedure archiviate Aurora MySQL.

Per disabilitare la replica basata su GTID per un cluster database Aurora MySQL
  1. Sulle repliche Aurora, esegui la seguente procedura:

    Per la versione 3

    CALL mysql.rds_set_source_auto_position(0);

    Per la versione 2

    CALL mysql.rds_set_master_auto_position(0);
  2. Reimpostare gtid_mode su ON_PERMISSIVE.

    1. Verificare che il gruppo di parametri del cluster di database associato al cluster di database Aurora MySQL abbia il parametro gtid_mode impostato su ON_PERMISSIVE.

      Per ulteriori informazioni sull'impostazione dei parametri di configurazione mediante i gruppi di parametri, consultare Utilizzo di gruppi di parametri.

    2. Riavvio del cluster di database Aurora MySQL

  3. Reimpostare gtid_mode su OFF_PERMISSIVE.

    1. Verificare che il gruppo di parametri del cluster di database associato al cluster di database Aurora MySQL abbia il parametro gtid_mode impostato su OFF_PERMISSIVE.

    2. Riavvio del cluster di database Aurora MySQL

  4. Attendere che tutte le transazioni GTID vengano applicate sull'istanza primaria di Aurora. Per verificare che vengano applicate, procedi nel seguente modo:

    1. Sull'istanza database primaria di Aurora, esegui il comando SHOW MASTER STATUS.

      Il risultato dovrebbe essere simile al seguente.

      File Position ------------------------------------ mysql-bin-changelog.000031 107 ------------------------------------

      Annotare il file e la posizione nell'output.

    2. In ogni replica letta, utilizzate le informazioni sul file e sulla posizione dalla relativa istanza di origine nel passaggio precedente per eseguire la seguente query:

      Per la versione 3

      SELECT SOURCE_POS_WAIT('file', position);

      Per la versione 2

      SELECT MASTER_POS_WAIT('file', position);

      Ad esempio, se il nome del file è mysql-bin-changelog.000031 e la posizione è107, esegui la seguente istruzione:

      Per la versione 3

      SELECT SOURCE_POS_WAIT('mysql-bin-changelog.000031', 107);

      Per la versione 2

      SELECT MASTER_POS_WAIT('mysql-bin-changelog.000031', 107);
  5. Reimposta i parametri GTID per disabilitare la replica basata su GTID.

    1. Verificare che il gruppo di parametri del cluster di database associato al cluster Aurora MySQL abbia le seguenti impostazioni dei parametri:

      • gtid_modeOFF

      • enforce_gtid_consistencyOFF

    2. Riavvio del cluster di database Aurora MySQL