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
|
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.
|
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.
|
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.
|
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.
|
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.
|
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
-
Eseguire il login a MySQL come account amministratore del servizio di database root o assegnato.
[root@srcdbserver ~]$ mysql -uroot -p -
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'; -
Eseguire i comandi seguenti per determinare se il database è abilitato con le impostazioni corrette del log binario e
server_id. Assicurarsi che il valorebinlog_formatsia impostato suROW, chebinlog_row_imageebinlog_row_metadatasiano impostati suFULLe che la variabileserver_idsia impostata su>=1e sia univoca per una replica primaria e per qualsiasi replica.show variables like 'binlog_%'; show variables like 'server_id'; -
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.
-
Modificare il file di configurazione MySQL,
my.cnfper Linux omy.iniper Windows, per abilitare le variabili di sistema necessarie per supportare l'acquisizione di Oracle GoldenGate per MySQL.[root@srcdbserver ~]$ vi /etc/my.cnf -
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* -
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 -
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.
-
Salvare e chiudere il file.
-
Riavviare il database per rendere effettive le impostazioni.
[root@srcdbserver ~]$ service mysqld restart -
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.
-
Per abilitare il log binario in Amazon, è necessario abilitare i backup del database, altrimenti la variabile
log_binriporterà comeOFFe Extract terminerà, segnalando che non può recuperare l'elenco dei filebinlog.Abilita i backup durante la creazione del database o modificando un database esistente per includere un reggimento di backup.
-
Per i database Amazon MySQL, impostare la variabile
binglog_formatsuROW, la variabilebinlog_row_imagesuFULL,event_schedulersuONse si implementa la funzionalità heartbeat di Oracle GoldenGate e impostare la variabilebinlog_row_metadatasuFULLse 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/
-
Per i database MySQL di Azure, impostare la variabile
binlog_formatsuROWe la variabilebinlog_row_imagesuFULL. 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:
-
Modifica Extract per acquisire da un point-in-time successivo per il quale sono disponibili dati di log binari (e accettare la possibile perdita di dati sulla destinazione).
-
Risincronizzare le tabelle di origine e di destinazione, quindi riavviare l'ambiente Oracle GoldenGate.
La conservazione dei dati di log binari può essere aumentata con misure diverse a seconda del database o della variante MySQL.
-
Per MySQL Server, MySQL Heatwave, Azure Database for MySQL e MariaDB, la variabile
binlog_expire_logs_secondspuò essere aumentata per regolare il periodo di conservazione. -
Per Amazon Aurora per MySQL e Amazon RDS per MySQL, le impostazioni di conservazione dei log binari predefinite sono
NULL, il che significa che per Aurora i log vengono eliminati pigramente e per RDS per MySQL, non vengono conservati. Utilizzare la procedura riportata di seguito per impostare il parametrobinlogore di conservazione. Ad esempio:call mysql.rds_set_configuration('binlog retention hours', 24);
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.