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 MIXED oder STATEMENT gesetzt ist, werden nur Transaktionen der Ebene ROW erfasst.

ROW

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.

FULL

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.

FULL

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.

ON

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.

ON

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.

>=1

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.

  1. Melden Sie sich bei MySQL als Root-Account oder zugewiesenem Datenbankservice-Administratoraccount an.

    [root@srcdbserver ~]$ mysql -uroot -p
  2. 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';
  3. 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 der binlog_format-Wert auf ROW, binlog_row_image und binlog_row_metadata auf FULL und die server_id-Variable auf >=1 gesetzt ist und für eine Primärdatenbank und alle Replikate eindeutig ist.

    show variables like 'binlog_%';
    show variables like 'server_id';
  4. 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.

  1. Bearbeiten Sie die Konfigurationsdatei MySQL, my.cnf für Linux oder my.ini fü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
  2. 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*
  3. Um das korrekte Binärloggingformat und die Variablen server_id festzulegen, 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
  4. 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.

  5. Speichern und schließen Sie die Datei.

  6. Starten Sie die Datenbank neu, damit die Einstellungen wirksam werden.

    [root@srcdbserver ~]$ service mysqld restart
  7. 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:

  1. Um das Binärlogging in Amazon zu aktivieren, müssen Sie Backups der Datenbank aktivieren. Andernfalls meldet die Variable log_bin als OFF, und Extract wird abgebrochen. Dabei wird gemeldet, dass die Liste der binlog-Dateien nicht abgerufen werden kann.

    Aktivieren Sie Backups beim Erstellen der Datenbank oder durch Ändern einer vorhandenen Datenbank, um ein Backup-Regiment aufzunehmen.

  2. Setzen Sie für Amazon-MySQL-Datenbanken die Variable binglog_format auf ROW, die Variable binlog_row_image auf FULL, die Variable event_scheduler auf ON, wenn Sie die Oracle GoldenGate-Heartbeat-Funktionalität implementieren, und setzen Sie die Variable binlog_row_metadata auf FULL, 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/

  3. Setzen Sie für Azure-Datenbanken der Version MySQL die Variable binlog_format auf ROW und die Variable binlog_row_image auf FULL. 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:

Die Aufbewahrung von Binärlogdaten kann je nach MySQL-Datenbank oder -Variante mit verschiedenen Kennzahlen erhöht werden.

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.