Impostazioni e requisiti log transazioni

Informazioni su come preparare il database MySQL e le varianti supportate per Oracle GoldenGate, incluse le impostazioni di log binario richieste e le variabili del database server.

Configurazione delle proprietà di log

Oracle GoldenGate si basa sui log binari MySQL per memorizzare i dati necessari per replicare le transazioni di origine. I log binari nel sistema di origine devono essere configurati correttamente prima di avviare l'elaborazione di Oracle GoldenGate.

Questa sezione riguarda le opzioni di avvio dei log binari e le variabili di sistema applicabili a Oracle GoldenGate per MySQL riportate di seguito.

Opzioni di log Valori Cosa fa Requisito
binlog_annotate_row_events ON, OFF Variabile di sistema che indica al server primario di scrivere questi eventi nel log binario. Obbligatorio per MariaDB e Oracle GoldenGate 23.8 e precedenti. OFF
binlog_expire_logs_seconds 0 - 4294967295 Se supportata, questa variabile di sistema imposta il periodo di scadenza del log binario, in secondi. Il valore consigliato è: >=86400
binlog_format ROW, STATEMENT, MIXED Variabile di sistema che imposta il formato di log binario.

Obbligatorio quando MySQL viene utilizzato come database di origine. Se impostato su MIXED o STATEMENT, verranno acquisite solo le transazioni di livello ROW.

ROW

binlog retention hours 1 - 168 Se supportata, questa variabile di sistema imposta il periodo di scadenza del log binario, in ore. Il valore consigliato è: >=24
binlog_row_image FULL, MINIMAL, NOBLOB Variabile di sistema che imposta diversi livelli di log a livello di colonna nel log binario.

Obbligatorio quando MySQL viene utilizzato come database di origine.

FULL

binlog_row_metadata FULL, MINIMAL Variabile di sistema che configura la quantità di metadati aggiunti al log binario per il log basato sulle righe.

Obbligatorio quando MySQL 8.0 o versione successiva viene utilizzato come database di origine per il supporto DDL.

FULL

event_scheduler ON, OFF Variabile di sistema che consente la creazione di job di aggiornamento e rimozione di Heartbeat.

Obbligatorio se si implementa la funzionalità Heartbeat di Oracle GoldenGate.

ON

log_bin ON, OFF Variabile di sistema che mostra lo stato del log binario. Obbligatorio quando MySQL viene utilizzato come database di origine. Se non esiste già ON, impostarlo assegnando un nome, ad esempio log-bin=binlog.
log_replica_updates ON, OFF Variabile di sistema che registra gli aggiornamenti nel log binario del server secondario quando vengono ricevuti da un server primario.

Obbligatorio quando MySQL viene utilizzato come database di origine e configurato per l'acquisizione da un server di replica.

ON

server_id 0 - 4294967295 È necessario specificare la variabile di sistema quando il log binario è abilitato. Per una replica primaria e ogni replica, assicurarsi che i valori siano >0 e univoci.

Obbligatorio quando MySQL viene utilizzato come database di origine.

>=1

Verifica log a livello di database

Per verificare le impostazioni di log binario correnti del database necessarie per supportare Oracle GoldenGate Capture per il database MySQL, eseguire le query riportate di seguito. Se è necessario modificare le impostazioni, seguire le istruzioni riportate in Abilita log a livello di database

  1. Eseguire il login a MySQL come account amministratore del servizio di database root o assegnato.

    [root@srcdbserver ~]$ mysql -uroot -p
  2. Eseguire il comando seguente per determinare se il database è abilitato per il log binario. Se il risultato è ON, il log binario del database viene abilitato.

    show variables like 'log_bin';
  3. Eseguire i comandi seguenti per determinare se il database è abilitato con le impostazioni corrette del log binario e server_id. Assicurarsi che il valore binlog_format sia impostato su ROW, che binlog_row_image e binlog_row_metadata siano impostati su FULL e che la variabile server_id sia impostata su >=1 e sia univoca per una replica primaria e per qualsiasi replica.

    show variables like 'binlog_%';
    show variables like 'server_id';
  4. Ripetere il processo per eseguire una query sulle variabili per le altre opzioni elencate in Configurazione delle proprietà di log in base ai requisiti, ad esempio il supporto DDL e il supporto di MariaDB.

Abilita log a livello di database

Eseguire i passi riportati di seguito, se necessario, per abilitare le impostazioni di log binario del database necessarie per supportare Oracle GoldenGate Capture per un database MySQL. Modificare solo le impostazioni che devono essere abilitate o modificate in base ai risultati di Verifica log a livello di database.

  1. Modificare il file di configurazione MySQL, my.cnf per Linux o my.ini per Windows, per abilitare le variabili di sistema necessarie per supportare l'acquisizione di Oracle GoldenGate per MySQL.

    [root@srcdbserver ~]$ vi /etc/my.cnf
  2. Per abilitare il log binario, aggiungere una voce al file di configurazione, come indicato di seguito, utilizzando un valore di log-bin delle preferenze.

    log-bin=*binlog*
  3. Per impostare il formato di log binario corretto e le variabili server_id, impostare le seguenti opzioni:

    binlog-format=ROW
    binlog-row-image=FULL
    
    #For MySQL 8.0 and above, for DDL support
    binlog-row-metadata=FULL
    
    #Set to value > 0 and <= 4294967295
    server-id=1
  4. Aggiungere variabili aggiuntive per le altre opzioni elencate in Configurazione delle proprietà di log in base ai requisiti, ad esempio il supporto DDL e il supporto MariaDB.

  5. Salvare e chiudere il file.

  6. Riavviare il database per rendere effettive le impostazioni.

    [root@srcdbserver ~]$ service mysqld restart
  7. Controllare lo stato del servizio di database utilizzando il comando seguente:

    [root@srcdbserver ~]$ service mysqld status

Modifica delle variabili di sistema per i servizi Amazon e Azure MySQL Database

Per configurare i database Amazon e Azure MySQL per la funzionalità Extract e heartbeat di Oracle GoldenGate, è necessario apportare le modifiche necessarie utilizzando i gruppi di parametri, la creazione o la modifica del database o le impostazioni dei parametri del server, se non sono già impostate sui valori richiesti. Per modificare queste variabili di sistema, attenersi alle linee guida indicate di seguito.

  1. Per abilitare il log binario in Amazon, è necessario abilitare i backup del database, altrimenti la variabile log_bin riporterà come OFF e Extract terminerà, segnalando che non può recuperare l'elenco dei file binlog.

    Abilita i backup durante la creazione del database o modificando un database esistente per includere un reggimento di backup.

  2. Per i database Amazon MySQL, impostare la variabile binglog_format su ROW, la variabile binlog_row_image su FULL, event_scheduler su ON se si implementa la funzionalità heartbeat di Oracle GoldenGate e impostare la variabile binlog_row_metadata su FULL se si abilita il supporto dell'acquisizione DDL.

    Seguire le istruzioni fornite da Amazon per creare o modificare un gruppo di parametri esistente al fine di apportare queste modifiche.

    https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/

  3. Per i database MySQL di Azure, impostare la variabile binlog_format su ROW e la variabile binlog_row_image su FULL. Seguire le istruzioni fornite da Microsoft per modificare le impostazioni dei parametri del server per l'istanza di database.

    https://docs.microsoft.com/en-us/azure/mysql/howto-server-parameters

Garantire la disponibilità dei dati

Conserva un numero sufficiente di dati di log binari in modo che, se si arresta Extract o si verifica un'indisponibilità non pianificata, Extract possa iniziare di nuovo dai suoi checkpoint. Extract deve avere accesso al log binario che contiene l'inizio dell'unità di lavoro meno recente non impegnata e tutti i log binari in seguito. Il periodo di conservazione consigliato è di almeno 24 ore di dati sulle transazioni, incluse le informazioni attive e archiviate. Potrebbe essere necessario eseguire alcuni test per determinare il tempo di conservazione migliore in base al volume di dati e ai requisiti aziendali.

Se i dati necessari per l'elaborazione durante l'elaborazione non vengono conservati, nei log attivi o di backup potrebbe essere necessaria una delle azioni correttive seguenti:

La conservazione dei dati di log binari può essere aumentata con misure diverse a seconda del database o della variante MySQL.

Acquisizione di una replica di replica MySQL

È possibile configurare Oracle GoldenGate per l'acquisizione da una replica di replica MySQL.

In genere, le transazioni applicate alla replica vengono registrate nei log del relay e non in binlog della replica. Affinché la replica scriva le transazioni ricevute dal database primario nel relativo binlog, è necessario avviare la replica con l'opzione log_replica_updates come 1 in my.cnf insieme agli altri parametri di log binari per Oracle GoldenGate. Dopo che le transazioni del database primario si trovano nel file binlog della replica, è possibile impostare un'estrazione Oracle GoldenGate normale nella replica per iniziare l'acquisizione.