Einstellungen und Anforderungen für Transaktionslogs
Erfahren Sie, wie Sie die MySQL-Datenbank und unterstützte Varianten für Oracle GoldenGate vorbereiten, einschließlich der erforderlichen binären Loggingeinstellung und Datenbankservervariablen.
Logging-Eigenschaften konfigurieren
Oracle GoldenGate verwendet die Binärlogs MySQL, um die Daten zu speichern, die zum Replizieren von Quelltransaktionen erforderlich sind. Die Binärlogs im Quellsystem müssen korrekt konfiguriert sein, bevor Sie die Oracle GoldenGate-Verarbeitung starten.
In diesem Abschnitt werden die folgenden Startoptionen für Binärlogs und Systemvariablen behandelt, die für Oracle GoldenGate für MySQL gelten.
| Loggingoptionen | Werte | Funktionsweise | Anforderung |
|---|---|---|---|
binlog_annotate_row_events |
ON, OFF |
Systemvariable, die den primären Server anweist, diese Ereignisse in das Binärlog zu schreiben. | Erforderlich für MariaDB und Oracle GoldenGate 23.8 und höher. OFF |
binlog_expire_logs_seconds |
0 - 4294967295 |
Wenn diese Systemvariable unterstützt wird, wird der Ablaufzeitraum für das Binärlog in Sekunden festgelegt. | Empfohlener Wert ist: >=86400 |
binlog_format |
ROW, STATEMENT, MIXED |
Systemvariable, die das binäre Loggingformat festlegt. | Erforderlich, wenn MySQL als Quelldatenbank verwendet wird. Wenn dieser Wert auf
|
binlog retention hours |
1 - 168 |
Sofern unterstützt, legt diese Systemvariable den Ablaufzeitraum des Binärlogs in Stunden fest. | Empfohlener Wert ist: >=24 |
binlog_row_image |
FULL, MINIMAL, NOBLOB |
Systemvariable, die verschiedene Logging-Ebenen auf Spaltenebene im Binärlog festlegt. | Erforderlich, wenn MySQL als Quelldatenbank verwendet wird.
|
binlog_row_metadata |
FULL, MINIMAL |
Systemvariable zur Konfiguration der Menge der Metadaten, die dem Binärlog für zeilenbasiertes Logging hinzugefügt wurden. | Erforderlich, wenn MySQL 8.0 oder höher als Quelldatenbank für die DDL-Unterstützung verwendet wird.
|
event_scheduler |
ON, OFF |
Systemvariable, mit der Heartbeat-Aktualisierungs- und Löschjobs erstellt werden können. | Erforderlich bei der Implementierung der Oracle GoldenGate-Heartbeat-Funktionalität.
|
log_bin |
ON, OFF |
Systemvariable, die den Status des Binärlogs anzeigt. | Erforderlich, wenn MySQL als Quelldatenbank verwendet wird. Wenn noch nicht ON vorhanden ist, legen Sie dies durch Zuweisen eines Namens fest, wie log-bin=binlog. |
log_replica_updates |
ON, OFF |
Systemvariable, die Aktualisierungen im Binärlog des sekundären Servers protokolliert, wenn sie von einem primären Server empfangen wird. | Erforderlich, wenn MySQL als Quelldatenbank verwendet und für die Erfassung von einem Replikatserver konfiguriert wird.
|
server_id |
0 - 4294967295 |
Systemvariable muss angegeben werden, wenn Binärlogging aktiviert ist. Stellen Sie bei einem primären Replikationsreplikat und jedem Replikationsreplikat sicher, dass die Werte >0 und eindeutig sind. | Erforderlich, wenn MySQL als Quelldatenbank verwendet wird.
|
Logging auf Datenbankebene prüfen
Um die aktuellen Binärloggingeinstellungen der Datenbank zu prüfen, die zur Unterstützung von Oracle GoldenGate Capture für die Datenbank MySQL erforderlich sind, führen Sie die folgenden Abfragen aus. Wenn Einstellungen geändert werden müssen, befolgen Sie die Anweisungen unter Logging auf Datenbankebene aktivieren.
-
Melden Sie sich bei MySQL als Root-Account oder zugewiesenem Datenbankservice-Administratoraccount an.
[root@srcdbserver ~]$ mysql -uroot -p -
Setzen Sie den folgenden Befehl ab, um zu bestimmen, ob die Datenbank für das Binärlogging aktiviert ist. Wenn das Ergebnis ON ist, wird das Binärlog der Datenbank aktiviert.
show variables like 'log_bin'; -
Setzen Sie die folgenden Befehle ab, um zu bestimmen, ob die Datenbank mit den richtigen Binärlogeinstellungen aktiviert ist, und
server_id. Stellen Sie sicher, dass derbinlog_format-Wert aufROW,binlog_row_imageundbinlog_row_metadataaufFULLund dieserver_id-Variable auf>=1gesetzt ist und für eine Primärdatenbank und alle Replikate eindeutig ist.show variables like 'binlog_%'; show variables like 'server_id'; -
Wiederholen Sie den Vorgang, um die Variablen für die anderen Optionen abzufragen, die unter Loggingebenen konfigurieren aufgeführt sind, je nach Ihren Anforderungen, wie DDL-Unterstützung und MariaDB-Unterstützung.
Logging auf Datenbankebene aktivieren
Führen Sie gegebenenfalls die folgenden Schritte aus, um die Datenbank-Binärloggingeinstellungen zu aktivieren, die zur Unterstützung von Oracle GoldenGate Capture für eine MySQL-Datenbank erforderlich sind. Ändern Sie nur die Einstellungen, die aktiviert oder geändert werden müssen, basierend auf den Ergebnissen aus Logging auf Datenbankebene prüfen.
-
Bearbeiten Sie die Konfigurationsdatei MySQL,
my.cnffür Linux odermy.inifür Windows, um Systemvariablen zu aktivieren, die zur Unterstützung der Oracle GoldenGate-Erfassung für MySQL erforderlich sind.[root@srcdbserver ~]$ vi /etc/my.cnf -
Um das Binärlog zu aktivieren, fügen Sie der Konfigurationsdatei einen Eintrag wie im Folgenden mit einem log-bin-Wert Ihrer Voreinstellung hinzu.
log-bin=*binlog* -
Um das korrekte Binärloggingformat und die Variablen
server_idfestzulegen, legen Sie Folgendes fest: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 -
Fügen Sie zusätzliche Variablen für die anderen Optionen hinzu, die unter Loggingebenen konfigurieren aufgeführt sind, je nach Ihren Anforderungen, wie DDL-Unterstützung und MariaDB-Unterstützung.
-
Speichern und schließen Sie die Datei.
-
Starten Sie die Datenbank neu, damit die Einstellungen wirksam werden.
[root@srcdbserver ~]$ service mysqld restart -
Prüfen Sie den Status des Datenbankservice mit dem folgenden Befehl:
[root@srcdbserver ~]$ service mysqld status
Ändern von Systemvariablen für Amazon und Azure MySQL Database Services
Um Amazon- und Azure-Datenbanken MySQL für Oracle GoldenGate Extract- und Heartbeat-Funktionen zu konfigurieren, müssen erforderliche Änderungen mit den Parametergruppen, der Datenbankerstellung oder -änderung oder den Serverparametereinstellungen vorgenommen werden, sofern sie nicht bereits auf die erforderlichen Werte gesetzt sind. Ändern Sie diese Systemvariablen anhand der folgenden Richtlinien:
-
Um das Binärlogging in Amazon zu aktivieren, müssen Sie Backups der Datenbank aktivieren. Andernfalls meldet die Variable
log_binalsOFF, und Extract wird abgebrochen. Dabei wird gemeldet, dass die Liste derbinlog-Dateien nicht abgerufen werden kann.Aktivieren Sie Backups beim Erstellen der Datenbank oder durch Ändern einer vorhandenen Datenbank, um ein Backup-Regiment aufzunehmen.
-
Setzen Sie für Amazon-MySQL-Datenbanken die Variable
binglog_formataufROW, die Variablebinlog_row_imageaufFULL, die Variableevent_scheduleraufON, wenn Sie die Oracle GoldenGate-Heartbeat-Funktionalität implementieren, und setzen Sie die Variablebinlog_row_metadataaufFULL, wenn Sie die Unterstützung für DDL-Capture aktivieren.Befolgen Sie die Anweisungen von Amazon, um eine vorhandene Parametergruppe zu erstellen oder zu bearbeiten, um diese Änderungen vorzunehmen.
https://aws.amazon.com/premiumsupport/knowledge-center/enable-binary-logging-aurora/
-
Setzen Sie für Azure-Datenbanken der Version MySQL die Variable
binlog_formataufROWund die Variablebinlog_row_imageaufFULL. Befolgen Sie die Anweisungen von Microsoft, um die Serverparametereinstellungen für die Datenbankinstanz zu ändern.https://docs.microsoft.com/en-us/azure/mysql/howto-server-parameters
Datenverfügbarkeit sicherstellen
Behalten Sie genügend Binärlogdaten bei, damit Extract von den Checkpoints aus neu gestartet werden kann, wenn Sie Extract stoppen oder ein ungeplanter Ausfall auftritt. Extract muss Zugriff auf das Binärlog haben, das den Start der ältesten nicht festgeschriebenen Arbeitseinheit und danach alle Binärlogs enthält. Der empfohlene Aufbewahrungszeitraum beträgt Transaktionsdaten von mindestens 24 Stunden, einschließlich aktiver und archivierter Informationen. Möglicherweise müssen Sie einige Tests durchführen, um die beste Aufbewahrungszeit aufgrund Ihres Datenvolumens und Ihrer Geschäftsanforderungen zu ermitteln.
Wenn Daten, die Extract während der Verarbeitung benötigt, weder in aktiven noch in Backuplogs aufbewahrt wurden, ist möglicherweise eine der folgenden Korrekturmaßnahmen erforderlich:
-
Ändern Sie den Extract so, dass er ab einem späteren Zeitpunkt erfasst wird, für den Binärlogdaten verfügbar sind (und einen möglichen Datenverlust auf dem Ziel akzeptieren).
-
Synchronisieren Sie die Quell- und Zieltabellen erneut, und starten Sie dann die Oracle GoldenGate-Umgebung erneut.
Die Aufbewahrung von Binärlogdaten kann je nach MySQL-Datenbank oder -Variante mit verschiedenen Kennzahlen erhöht werden.
-
Für MySQL Server, MySQL Heatwave, Azure Database for MySQL und MariaDB kann die Variable
binlog_expire_logs_secondserhöht werden, um den Aufbewahrungszeitraum anzupassen. -
Für Amazon Aurora for MySQL und Amazon RDS for MySQL sind die Standardeinstellungen für die Aufbewahrung von Binärlogs
NULL. Das bedeutet, dass die Logs für Aurora lazily clean werden und für RDS for MySQL nicht beibehalten werden. Mit der folgenden Prozedur können Sie den ParameterbinlogAufbewahrungsstunden festlegen. Beispiel:call mysql.rds_set_configuration('binlog retention hours', 24);
Erfassung anhand eines MySQL-Replikationsreplikats
Sie können Oracle GoldenGate so konfigurieren, dass es von einem MySQL-Replikationsreplikat erfasst wird.
In der Regel werden die am Replikat angewendeten Transaktionen in den Relay-Logs und nicht in der Replikatdatei binlog protokolliert. For the replica to write transactions that it receives from the primary, into its binlog, you must start the replication replica with the log_replica_updates option as 1 in my.cnf in conjunction with the other binary logging parameters for Oracle GoldenGate. Nachdem sich die Primärtransaktionen im Replikat binlog befinden, können Sie einen regulären Oracle GoldenGate-Extrakt auf dem Replikat einrichten, um die Erfassung zu starten.