Überwachungsverzögerung

Lag-Statistiken zeigen, wie gut die Oracle GoldenGate-Prozesse mit der Datenmenge Schritt halten, die von den Geschäftsanwendungen generiert wird. Mit diesen Informationen können Sie verdächtige Probleme diagnostizieren und die Performance der Oracle GoldenGate-Prozesse optimieren, um die Latenz zwischen der Quell- und der Zieldatenbank zu minimieren.

Informationen zur Verzögerung

Bei Extract ist die Verzögerung die Differenz in Sekunden zwischen der Verarbeitungszeit eines Datensatzes durch Extract (basierend auf der Systemuhr) und dem Zeitstempel dieses Datensatzes in der Datenquelle.

Bei Replicat ist die Verzögerung die Differenz in Sekunden zwischen der Verarbeitungszeit des letzten Datensatzes durch Replicat (basierend auf der Systemuhr) und dem Zeitstempel des Datensatzes im Trail.

Um Lag-Statistiken anzuzeigen, verwenden Sie die Befehle [LAG](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-52D1B2C3-6ACF-4461-9ED2-FD3AE9121022) oder [SEND ER](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-DD62102E-A84D-4866-9A3A-9C2281CFEED7), [SEND EXTRACT](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-2A83CA04-DAB8-494B-BF36-F8D15E645749) und [SEND REPLICAT](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-DBA8F45C-6016-4AB4-BF9A-00C117029E7F).

Hinweis: Der Befehl INFO gibt auch eine Verzögerungsstatistik zurück. Diese Statistik stammt jedoch aus dem letzten Datensatz, der geprüft wurde, und nicht aus dem aktuellen Datensatz, der verarbeitet wird. Sie ist weniger genau als LAG oder INFO.

Verzögerung mit automatischen Taktüberwachungstabellen überwachen

Mit der standardmäßigen automatischen Heartbeat-Tabellenfunktion können Sie die End-to-End-Replikationsverzögerungen überwachen. Automatische Heartbeats werden von jeder Quelldatenbank an die Replikationsstreams gesendet, indem die Datensätze in einer Heartbeat-Seed-Tabelle und einer Heartbeat-Tabelle aktualisiert und eine heartbeat history table erstellt werden. Jeder Replikationsprozess im Replikationspfad verarbeitet diese Heartbeat-Datensätze und aktualisiert die darin enthaltenen Informationen. Diese Heartbeat-Datensätze werden in den Zieldatenbanken in die Heartbeat-Tabelle eingefügt oder aktualisiert.

Die Heartbeat-Tabellen enthalten die folgenden Informationen:

Anhand der Informationen in der Heartbeat-Tabelle und der Heartbeat-History-Tabelle können die aktuellen und historischen Verzögerungen in jeder Replikation berechnet werden.

Replicat kann die aktuelle Neustartposition von Extract mit automatischen Heartbeat-Tabellen (LOGBSN) verfolgen. Auf diese Weise können die Traildateien bei Bedarf aus der Quelldatenbank neu generiert werden, und der Aufbewahrungszeitraum für Redo-Logs der Quelldatenbank wird minimiert. Durch die Verfolgung der neuesten Extract-Neustartposition können die Tombstone-Tabellen für ACDR-Tabellen (Automatic Conflict Detection and Resolution) häufiger gelöscht werden.

In einer bidirektionalen Konfiguration enthält die Heartbeat-Tabelle so viele Einträge wie die Anzahl der Replikationspfade zu den Neighbors der Datenbank. In einem unidirektionalen Setup ist die Tabelle an der Quelle leer. Die abgehenden Spalten haben die Zeitstempel und den abgehenden Pfad, den lokalen Extract und die nachgelagerten Prozesse. Die eingehenden Spalten haben die Zeitstempel und den Pfad der Upstreamprozesse und des lokalen Replicats.

In einer unidirektionalen Konfiguration füllt die Zieldatenbank nur die eingehenden Spalten in der Heartbeat-Tabelle auf.

Hinweis: Die automatische Taktüberwachung wird in MySQL Version 5.5 nicht unterstützt.

End-to-End-Replikationsablauf für Heartbeat-Tabelle

Der End-to-End-Replikationsprozess für Heartbeat-Tabellen basiert auf der Verwendung des Oracle GoldenGate-Trailformats. Folgender Prozess wird verwendet:


Fügen Sie jeder Ihrer Datenbanken mit dem Befehl ADD HEARTBEATTABLE eine Heartbeat-Tabelle hinzu. Fügen Sie die Heartbeat-Tabelle allen Quell- und Zielinstanzen hinzu, und starten Sie dann vorhandene Oracle GoldenGate-Prozesse neu, um die Heartbeat-Funktionalität zu aktivieren. Abhängig von der Datenbank müssen Sie möglicherweise einen Job zum Auffüllen der Heartbeat-Tabellendaten erstellen oder aktivieren.

Siehe folgendes Beispiel:

DBLOGIN USERIDALIAS *alias*  [DOMAIN domain]|[SYSDBA | SQLID sqlid][SESSIONCHARSET character_set]}
ADD HEARTBEATTABLE

(Optional) Bei Oracle-Datenbanken müssen Sie sicherstellen, dass die Oracle-DBMS_SCHEDULER ordnungsgemäß funktioniert, da das Heartbeat-Update davon abhängig ist. Sie können die DBMS_SCHEDULER abfragen, indem Sie Folgendes absetzen:

SELECT START_DATE, LAST_START_DATE, NEXT_RUN_DATE
FROM DBA_SCHEDULER_JOBS

wobei job_name ='GG_UPDATE_HEARTBEATS';

Suchen Sie dann nach gültigen Einträgen für NEXT_RUN_DATE. Dies ist das nächste Mal, wenn der Scheduler ausgeführt wird. Wenn dies ein Zeitstempel in der Vergangenheit ist, wird kein Job ausgeführt, und Sie müssen ihn korrigieren.

Ein häufiger Grund dafür, dass der Scheduler nicht funktioniert, ist, wenn der Parameter job_queue_processes zu niedrig gesetzt ist (normalerweise null). Erhöhen Sie die Anzahl der in der Datenbank konfigurierten job_queue_processes mit dem Befehl ALTER SYSTEM SET JOB_QUEUE_PROCESSES = ##;, wobei ## die Anzahl der Jobqueueprozesse ist.


Führen Sie einen Extract aus, der beim Empfang der Logical Change Records (LCR) den Wert in der Spalte OUTGOING_EXTRACT prüft.



Der Verteilungsservice beim Lesen des Datensatzes prüft den Wert in der Spalte OUTGOING_ROUTING_PATH. Diese Spalte enthält eine Liste mit Verteilungspfaden.

Wenn der Wert NULL lautet, wird die Spalte mit dem aktuellen Gruppennamen (und dem Pfad, wenn es sich um einen Verteilungsservice handelt)"*" aktualisiert, die Spalte OUTGOING_ROUTING_TS aktualisiert, und der Datensatz wird in die Zieltraildatei geschrieben.

Wenn der Wert eine "*" in der Liste enthält, ersetzen Sie ihn durch group name[:pathname],"*"', aktualisieren Sie die Spalte OUTGOING_ROUTING_TS, und der Datensatz wird in die Zieltraildatei geschrieben. Wenn der Wert in der Liste kein Sternchen (*) enthält und der Verteilungspfadname in der Liste enthalten ist, wird der Datensatz an den Pfad gesendet, der im relevanten group name[:pathname],"*"'-Paar in der Liste angegeben ist. Wenn der Verteilungspfadname nicht in der Liste enthalten ist, wird der Datensatz verworfen.

Führen Sie ein Replicat aus, das beim Empfang des Datensatzes den Wert in der Spalte OUTGOING_REPLICAT prüft.

Weitere Überlegungen:

Die Berechnung verzögert sich, wenn der Heartbeat durch das System fließt, und hängt von der korrekten Einrichtung der Uhren der Quell- und Zielsysteme ab. Es ist möglich, dass die Verzögerung negativ sein kann, wenn das Zielsystem vor dem Quellsystem liegt. Die Verzögerung wird als negative Zahl angezeigt, sodass Sie sich der Abweichung der Uhr bewusst sind und Aktionen ausführen können, um sie zu beheben.

Der Zeitstempel, der durch das System fließt, ist UTC. Dem Zeitstempel ist keine Zeitzone zugeordnet. Wenn Sie also die Taktüberwachungstabellen anzeigen, kann die Verzögerung auch dann schnell angezeigt werden, wenn sich verschiedene Komponenten in verschiedenen Zeitzonen befinden. Sie können jede beliebige Ansicht über die zugrunde liegenden Tabellen schreiben. UTC wird empfohlen.

Alle Heartbeat-Einträge werden in UTF-8 in den Trail geschrieben.

Die ausgehenden und eingehenden Pfade zusammen bestimmen eine Zeile eindeutig. Das heißt, wenn Sie zwei Zeilen mit demselben ausgehenden Pfad und einem anderen eingehenden Pfad haben, werden zwei eindeutige Einträge betrachtet.

Heartbeat-Tabellendetails

In der Tabelle GG_HEARTBEAT werden Zeitstempelinformationen zur End-to-End-Replikationszeit und die Zeitinformationen zu den verschiedenen primären und sekundären Extract- und Replicat-Komponenten angezeigt.

In einer unidirektionalen Umgebung enthält nur die Zieldatenbank Informationen über die Replikationsverzögerung. Dies ist der Zeitpunkt, zu dem ein Datensatz in der Quelldatenbank generiert wird und für Clients in der Zieldatenbank sichtbar wird. Hinweis: Die automatischen Heartbeat-Tabellen füllen die Spalten OUTGOING_% nicht mit Daten auf, wenn sowohl die Quell- als auch die Remotedatenbank denselben Namen haben. Um den Datenbanknamen zu ändern, verwenden Sie das Utility DBNEWID. Weitere Informationen finden Sie im DBNEWID-Utility.

Spalte Datentyp Beschreibung
LOCAL_DATABASE VARCHAR2 Lokale Datenbank, in der die Replikationszeit aus der Remotedatenbank gemessen wird.
HEARTBEAT_TIMESTAMP TIMESTAMP(6) Der Zeitpunkt, zu dem ein Zeitstempel in der Remotedatenbank generiert wird.
REMOTE_DATABASE VARCHAR2 Remote-Datenbank, in der der Zeitstempel generiert wird
INCOMING_EXTRACT VARCHAR2 Name des primären Extract (Capture) in der Remotedatenbank
INCOMING_ROUTING_PATH VARCHAR2 Name des sekundären Extract (Pumps) in der Remotedatenbank
INCOMING_REPLICAT VARCHAR2 Name des Replicats in der lokalen Datenbank.
INCOMING_HEARTBEAT_TS TIMESTAMP(6) Endgültiger Zeitstempel, wenn die Informationen in die Tabelle GG_HEARTBEAT in der lokalen Datenbank eingefügt werden.
INCOMING_EXTRACT_TS TIMESTAMP(6) Der Zeitstempel des generierten Zeitstempels wird vom primären Extract in der Remotedatenbank verarbeitet.
INCOMING_ROUTING_TS TIMESTAMP(6) Der Zeitstempel des generierten Zeitstempels wird vom sekundären Extract in der Remotedatenbank verarbeitet.
INCOMING_REPLICAT_TS TIMESTAMP(6) Der Zeitstempel des generierten Zeitstempels wird von Replicat in der lokalen Datenbank verarbeitet.
OUTGOING_EXTRACT VARCHAR2 Bidirektionale/n-seitige Replikation: Name des primären Extract in der lokalen Datenbank.
OUTGOING_ROUTING_PATH VARCHAR2 Bidirektionale/n-seitige Replikation: Name des sekundären Extract in der lokalen Datenbank.
OUTGOING_REPLICAT VARCHAR2 Bidirektionale/n-seitige Replikation: Name des Replicats in der Remotedatenbank.
OUTGOING_HEARTBEAT_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Endgültiger Zeitstempel, wenn die Informationen in die Tabelle in der Remotedatenbank eingefügt werden.
OUTGOING_EXTRACT_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Der Zeitstempel des generierten Zeitstempels wird vom primären Extract in der lokalen Datenbank verarbeitet.
OUTGOING_ROUTING_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Der Zeitstempel des generierten Zeitstempels wird vom sekundären Extract in der lokalen Datenbank verarbeitet.
OUTGOING_REPLICAT_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Der Zeitstempel des generierten Zeitstempels wird von Replicat in der Remotedatenbank verarbeitet.
INCOMING_REPLICAT_LW_CSN VARCHAR2 -
INCOMING_EXTRACT_HEARTBEAT_CSN VARCHAR2 -
INCOMING_EXTRACT_RESTART_CSN VARCHAR2 -
INCOMING_EXTRACT_RESTART_TS TIMESTAMP(6) -

In der Tabelle GG_HEARTBEAT_HISTORY werden historische Zeitstempelinformationen zur End-to-End-Replikationszeit und die Zeitinformationen zu den verschiedenen primären und sekundären Extract- und Replicat-Komponenten angezeigt.

In einer unidirektionalen Umgebung enthält nur die Zieldatenbank Informationen über die Replikationsverzögerung.

Zeitstempel werden in der UTC-Zeitzone verwaltet. Dies ist der Zeitpunkt, zu dem ein Datensatz in der Quelldatenbank generiert wird und für Clients in der Zieldatenbank sichtbar wird.

Spalte Datentyp Beschreibung
LOCAL_DATABASE VARCHAR2 Lokale Datenbank, in der der End-to-End-Lag gemessen wird.
HEARTBEAT_RECEIVED_TS TIMESTAMP(6) Zeitpunkt, zu dem ein Zeitstempel von der Remote-Datenbank bei der lokalen Datenbank empfangen wird.
REMOTE_DATABASE VARCHAR2 Remote-Datenbank, in der der Zeitstempel generiert wird.
INCOMING_EXTRACT VARCHAR2 Name des primären Extract in der Remotedatenbank.
INCOMING_ROUTING_PATH VARCHAR2 Name des sekundären Extract der Remotedatenbank.
INCOMING_REPLICAT VARCHAR2 Name des Replicats in der lokalen Datenbank.
INCOMING_HEARTBEAT_TS TIMESTAMP(6) Endgültiger Zeitstempel, wenn die Informationen in die Tabelle GG_HEARTBEAT_HISTORY in der lokalen Datenbank eingefügt werden.
INCOMING_EXTRACT_TS TIMESTAMP(6) Zeitstempel, wenn der generierte Zeitstempel vom primären Extract in der Remotedatenbank verarbeitet wird.
INCOMING_ROUTING_TS TIMESTAMP(6) Zeitstempel, wenn der generierte Zeitstempel vom sekundären Extract in der Remotedatenbank verarbeitet wird.
INCOMING_REPLICAT_TS TIMESTAMP(6) Zeitstempel, wenn der generierte Zeitstempel von Replicat in der lokalen Datenbank verarbeitet wird.
OUTGOING_EXTRACT VARCHAR2 Bidirektionale/n-seitige Replikation: Name des primären Extract aus der lokalen Datenbank.
OUTGOING_ROUTING_PATH VARCHAR2 Bidirektionale/N-seitige Replikation: Name des sekundären Extract aus der lokalen Datenbank.
OUTGOING_REPLICAT VARCHAR2 Bidirektionale/n-seitige Replikation: Name des Replicats in der Remotedatenbank.
OUTGOING_HEARTBEAT_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Endgültiger Zeitstempel, wenn die Informationen dauerhaft in die Tabelle der Remote-Datenbank eingefügt werden.
OUTGOING_EXTRACT_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Zeitstempel, wenn der generierte Zeitstempel vom primären Extract in der lokalen Datenbank verarbeitet wird.
OUTGOING_ROUTING_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Zeitstempel, wenn der generierte Zeitstempel vom sekundären Extract in der lokalen Datenbank verarbeitet wird.
OUTGOING_REPLICAT_TS TIMESTAMP(6) Bidirektionale/n-seitige Replikation: Zeitstempel, wenn der generierte Zeitstempel von Replicat in der Remotedatenbank verarbeitet wird.
REPLICAT_LOW_WATERMARK_CSN String Diese Spalte wird von Replicat aufgefüllt, wenn dieser Heartbeat-Datensatz verarbeitet wird. Er füllt diese Spalte mit dem aktuellen Low-Watermark (LWM) auf, wenn er diesen Record verarbeitet. Auf diese Weise können wir einen LOGBSN aus einem Heartbeat-Datensatz auswählen, der zum Replicat LWM gehört.
SOURCE_EXTRACT_HEARTBEAT_CSN String Diese Spalte wird durch Extract aufgefüllt und enthält die Quell-Commit-SCN für die Heartbeat-Transaktion in der Quelldatenbank. Der Heartbeat-Job in der Quelldatenbank kann diesen Wert nicht auffüllen, da er die Commit-SCN apriori nicht kennt.
SOURCE_EXTRACT_RESTART_CSN String Diese Spalte wird durch Extract aufgefüllt und enthält das aktuelle LOGBSN, wenn Extract diesen bestimmten Heartbeat-Datensatz verarbeitet. Der Heartbeat-Job in der Quelldatenbank füllt diesen Wert nicht auf.
SOURCE_EXTRACT_RESTART_CSN_TS TIMESTAMP Diese Spalte wird durch Extract aufgefüllt und enthält den Redo-Zeitstempel in UTC, der dem aktuellen LOGBSN entspricht, wenn Extract diesen bestimmten Heartbeat-Datensatz verarbeitet. Der Heartbeat-Job in der Quelldatenbank füllt diesen Wert nicht auf.

In der Ansicht GG_LAG werden Informationen zum Replikationsverzögerung zwischen der lokalen und der Remotedatenbank angezeigt.

In einer unidirektionalen Umgebung enthält nur die Zieldatenbank Informationen über die Replikationsverzögerung. Die Verzögerung wird in Sekunden gemessen.

Spalte Datentyp Beschreibung
LOCAL_DATABASE VARCHAR2 Lokale Datenbank, in der die End-to-End-Replikationsverzögerung der Remotedatenbank gemessen wird.
CURRENT_LOCAL_TS TIMESTAMP(6) Aktueller Zeitstempel der lokalen Datenbank.
REMOTE_DATABASE VARCHAR2 Remote-Datenbank, in der der Zeitstempel generiert wird.
INCOMING_HEARTBEAT_AGE NUMBER Das Alter des letzten Heartbeats, der von der Remotedatenbank empfangen wurde.
INCOMING_PATH VARCHAR2 Replikationspfad von der Remotedatenbank zur lokalen Datenbank mit Extract- und Replicat-Komponenten.
INCOMING_LAG NUMBER Replikationsverzögerung von der Remotedatenbank zur lokalen Datenbank. Dies ist die Zeit, in der der Heartbeat in der Remotedatenbank generiert wurde, abzüglich der Zeit, in der die Informationen dauerhaft in die Tabelle in der lokalen Datenbank eingefügt wurden.
OUTGOING_HEARTBEAT_AGE NUMBER Das Alter des letzten Heartbeats von der lokalen Datenbank zur Remotedatenbank.
OUTGOING_PATH VARCHAR2 Replikationspfad von der lokalen Datenbank zur Remotedatenbank mit Extract- und Replicat-Komponenten
OUTGOING_LAG NUMBER Replikationsverzögerung von der lokalen Datenbank zur Remotedatenbank. Dies ist die Zeit, in der der Heartbeat in der lokalen Datenbank generiert wurde, abzüglich der Zeit, in der die Informationen dauerhaft in die Tabelle in der Remotedatenbank eingefügt wurden.
REMOTE_EXTRACT_RESTART_CSN String Neustartposition für Quellextrakt.
REMOTE_DATABASE DB_UNIQUE_NAME String Eindeutiger Remote-Datenbankname wird angezeigt. Wenn kein eindeutiger Name vorhanden ist, wird der Wert DB_NAME angezeigt.
REMOTE_EXTRACT_RESTART_CSN_TIME Timestamp Zeitstempel, der der Extract-Redo-Position der Quelle zugeordnet ist.
REMOTE_DB_OLDEST_OPEN_TXN_AGE Timestamp Alter der ältesten offenen Transaktion in der Quelldatenbank, die gerade von Extract verarbeitet wird. Diese Spalte kann als SYSTIMESTAMP - REMOTE_EXTRACT_RESTART_TIME berechnet werden.
LOCAL_REPLICAT_LWM_CSN String CSN mit niedrigem Wasserzeichen des lokalen Replicats bei der Verarbeitung des Heartbeats.

In der Ansicht GG_LAG_HISTORY werden die Historieninformationen zur Replikationsverzögerungshistorie zwischen der lokalen und der Remotedatenbank angezeigt.

In einer unidirektionalen Umgebung enthält nur die Zieldatenbank Informationen über die Replikationsverzögerung.

Die Einheit der Verzögerungseinheiten beträgt in Sekunden.

Spalte Datentyp Beschreibung
LOCAL_DATABASE VARCHAR2 Lokale Datenbank, in der die End-to-End-Replikationsverzögerung der Remotedatenbank gemessen wird.
HEARTBEAT_RECEIVED_TS TIMESTAMP(6) Zeitpunkt, zu dem ein Zeitstempel von der Remotedatenbank in der lokalen Datenbank empfangen wird.
REMOTE_DATABASE VARCHAR2 Remote-Datenbank, in der der Zeitstempel generiert wird.
DB_NAME Zeichenfolge Name der Remotedatenbank.
DB_UNIQUE_NAME Zeichenfolge Eindeutiger Remote-Datenbankname. Wenn der eindeutige Datenbankname nicht vorhanden ist, sind DB_NAME und DB_UNIQUE_NAME identisch. Bei einem Switchover auf ein Standby-Szenario ändert sich die db_unique_name, aber der db_name- und der Replikationspfad bleiben gleich
INCOMING_HEARTBEAT_AGE NUMBER Das Alter des Heartbeat-Tisches.
INCOMING_PATH VARCHAR2 Replikationspfad von der Remotedatenbank zur lokalen Datenbank mit Extract- und Replicat-Komponenten.
INCOMING_LAG NUMBER Replikationsverzögerung von der Remotedatenbank zur lokalen Datenbank. Dies ist die Zeit, in der der Heartbeat in der Remotedatenbank generiert wurde, abzüglich der Zeit, in der die Informationen dauerhaft in die Tabelle in der lokalen Datenbank eingefügt wurden.
OUTGOING_HEARTBEAT_AGE NUMBER  
OUTGOING_PATH VARCHAR2 Replikationspfad von der lokalen Datenbank zur Remotedatenbank mit Extract- und Replicat-Komponenten.
OUTGOING_LAG NUMBER Replikationsverzögerung von der lokalen Datenbank zur Remotedatenbank. Dies ist die Zeit, in der der Heartbeat in der lokalen Datenbank generiert wurde, abzüglich der Zeit, in der die Informationen dauerhaft in die Tabelle in der Remotedatenbank eingefügt wurden.
REMOTE_EXTRACT_RESTART_CSN String Neustartposition für Quellextrakt.
REMOTE_EXTRACT_RESTART_CSN_TIME TIMESTAMP Zeitstempel, der der Extract-Redo-Position der Quelle zugeordnet ist.
REMOTE_DB_OLDEST_OPEN_TXN_AGE TIMESTAMP Alter der ältesten offenen Transaktion in der Quelldatenbank, die gerade von Extract verarbeitet wird. Diese Spalte kann wie folgt berechnet werden: SYSTIMESTAMP - REMOTE_EXTRACT_RESTART_TIME
LOCAL_REPLICAT_LWM_CSN String CSN mit niedrigem Wasserzeichen des lokalen Replicats bei der Verarbeitung des Heartbeats.
INCOMING_EXTRACT_LAG - -
INCOMING_ROUTINE_LAG - -
INCOMING_REPLICAT_READ_LAG - -
INCOMING_REPICAT_LAG - -
OUTGOING_EXTRACT_LAG - -
OUTGOING_ROUTINE_LAG - -
OUTGOING_REPLICAT_READ_LAG - -
OUTGOING_REPLICAT_LAG - -

Heartbeat-Tabellen aktualisieren

Die Spalte HEARTBEAT_TIMESTAMP in der Heartbeat-Seed-Tabelle muss regelmäßig von einem Datenbankjob aktualisiert werden. Das Standard-Heartbeat-Intervall beträgt 1 Minute. Dieses Intervall kann über die Befehlszeile oder die Administration Service-Weboberfläche angegeben oder außer Kraft gesetzt werden.

Bei Oracle AI Database wird der Datenbankjob automatisch erstellt.

Für PostgreSQL können Sie eine automatisierte Aufgabe einrichten, um die Heartbeat-Tabelle zu aktualisieren. Siehe Automatisierungsaufgabe zum Aktualisieren der Heartbeat-Tabelle konfigurieren für PostgreSQL.

Für alle anderen unterstützten Datenbanken müssen Sie Hintergrundjobs erstellen, um den Heartbeat-Zeitstempel mit der datenbankspezifischen Scheduler-Funktion zu aktualisieren.

Weitere Informationen zum Aktualisieren der Heartbeat-Tabelle finden Sie unter [ADD HEARTBEATTABLE](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-126E30A2-DC7A-4C93-93EC-0EB8BA7C13CB), [ALTER HEARTBEATTABLE](/pls/topic/lookup?ctx=en/database/goldengate/core/26/coredoc&id=GCLIR-GUID-08BC29F9-8A5D-4AD9-B355-528A270EECC8).

Automatisierungsaufgabe zum Aktualisieren der Heartbeat-Tabelle für PostgreSQL konfigurieren

Die Oracle GoldenGate for PostgreSQL-Weboberfläche bietet die Funktion zum Erstellen eines Cron-Jobs zum regelmäßigen Aktualisieren der Heartbeat-Tabelle.

So erstellen Sie diese Aufgabe über die Weboberfläche:

  1. Blenden Sie im linken Navigationsbereich Aufgaben ein, und wählen Sie die Option Heartbeat-Aufgaben aktualisieren aus.

    \

    Automatisierungsaufgabenoption zum Aktualisieren des Heartbeats für PostgreSQL

    \

  2. Klicken Sie auf der Seite "Heartbeat-Aufgaben aktualisieren" auf das Pluszeichen. Das Dialogfeld Neue Taktüberwachungsaufgabe erstellen wird angezeigt.\

    Erstellen Sie ein neues Dialogfeld "Heartbeat-Aufgabe aktualisieren" mit Optionen zum Auswählen des Alias und der Domäne für die Datenbankzugangsdaten und zum Festlegen eines Häufigkeitsintervalls für die automatische Aktualisierung der Heartbeat-Tabelle.

  3. Geben Sie die folgenden Werte im Dialogfeld an, und klicken Sie auf Weiterleiten:

    • Name: Geben Sie einen Namen für die Aufgabe an.

    • Zugangsdatendomain: Wählen Sie den Domainnamen aus der Dropdown-Liste aus.

    • Zugangsdatenalias: Wählen Sie den Zugangsdatenalias für die Datenbankinstanz PostgreSQL aus, für die Sie die Update-Heartbeat-Aufgabe erstellen.

    • Intervall: Geben Sie das Intervall für die Ausführung der Aktualisierungsaufgabe an. Der Mindestwert ist 60 (Standard), und der Höchstwert kann auf 7999 gesetzt werden.

Zum Ändern oder Löschen einer Aufgabe "Heartbeat aktualisieren" können Sie die folgenden Schritte ausführen: 1. Wählen Sie im linken Navigationsbereich der Administrationsserviceoberfläche die Option Aufgaben aus.

  1. Klicken Sie auf Heartbeat-Aufgaben aktualisieren. Eine Liste der vorhandenen Aufgaben zur Aktualisierung der Taktüberwachung wird angezeigt.

  2. Klicken Sie in der Spalte Aktionen auf das Symbol Stift. Das Dialogfeld Update-Heartbeat-Aufgabe bearbeiten wird angezeigt.

  3. Sie können die Zugangsdatendomain, den Alias oder das Häufigkeitsintervall ändern oder ändern und auf Weiterleiten klicken. Die geänderte Aufgabe "Heartbeat aktualisieren" wird auf der Seite "Heartbeat-Aufgaben aktualisieren" aufgeführt.

  4. Um eine Aufgabe zu löschen, klicken Sie in der Spalte "Aktionen" für die Aufgabe auf das Symbol Löschen. Um den Löschvorgang zu bestätigen, klicken Sie auf "OK".

Heartbeat-Historientabellen löschen

Die Heartbeat-Historientabelle wird regelmäßig mit einem Job gelöscht. Das Standardintervall beträgt 30 Tage. Dieses Intervall kann mit einem Befehlszeilen-Inteface wie Admin Client oder der Administration Service-Weboberfläche angegeben oder außer Kraft gesetzt werden.

Bei Oracle AI Database wird der Datenbankjob automatisch erstellt.

Für alle anderen unterstützten Datenbanken müssen Sie Hintergrundjobs erstellen, um die Heartbeat-Historientabelle mit der datenbankspezifischen Scheduler-Funktion zu löschen.

Best Practice

Oracle empfiehlt, dass Sie:

Verwenden der automatischen Taktüberwachungsbefehle

Sie können die automatischen Heartbeat-Funktionen von Oracle GoldenGate wie folgt mit den Heartbeat-Tabellenbefehlen steuern.

Befehl Beschreibung
ADD HEARTBEATTABLE Erstellt die Heartbeat-Tabellen, die für die automatische Heartbeat-Funktionalität erforderlich sind, einschließlich der Spalten LOGBSN.
ALTER HEARTBEATTABLE Ändert vorhandene Heartbeat-Objekte.
ALTER HEARTBEATTABLE UPGRADE Ändert die Heartbeat-Tabellen, um die LOGBSN-Spalten zu den Heartbeat-Tabellen hinzuzufügen. Diese Einstellung ist optional.
DELETE HEARTBEATTABLE Löscht vorhandene Heartbeat-Objekte.
DELETE HEARTBEATENTRY Löscht Einträge in der Heartbeat-Tabelle.
INFO HEARTBEATTABLE Zeigt Heartbeat-Tabelleninformationen an.

Berichtsverzögerung

Auf Verzögerungsberichte kann über den Administration Service zugegriffen werden. Sie können eine Aufgabe für den Verzögerungsbericht einrichten, um automatisch Verzögerungsberichte für eine bestimmte Laufzeit zu generieren, und Warnungen ausgeben, wenn der Verzögerungswert den angegebenen Schwellenwert überschreitet. So richten Sie eine automatisierte Aufgabe zum Generieren von Nachlaufzeitberichten ein: 1. Klicken Sie im linken Navigationsbereich des Administrationsservice auf Aufgaben, und wählen Sie Lag-Bericht aus.

  1. Die Spalte "Aktion" enthält alle Optionen zum Löschen, Ändern, Aktualisieren und Anzeigen der Aufgabendetails des Nachlaufzeitberichts.

  2. Wählen Sie die erforderliche Option.

  3. Wenn Sie die Option "Aufgabe ändern" wählen, werden Optionen zum Bearbeiten des Nachlaufzeitberichts angezeigt. Verfügbare Optionen:

    • Aktiviert: Damit wird die Aufgabe "Nachlaufzeitbericht" weiter verarbeitet.

    • Check Every (in minutes): So legen Sie ein Zeitintervall fest, um den Lag-Bericht zu prüfen.

    • Bericht: So generieren Sie einen Nachlaufzeitbericht automatisch, wenn der angegebene Schwellenwert überschritten wird. Sie können den Schwellenwert im Feld "Wenn überschritten" angeben.

    • If Exceeds: So geben Sie einen Schwellenwert an, nach dem eine Warnung ausgelöst wird. Der Wert kann Sekunden, Minuten oder Stunden sein.

    • Warnung: Damit kann eine Warnung generiert werden, falls der Verzögerungsschwellenwert den angegebenen Schwellenwert überschreitet.

    • When Exceeds: Der Lag-Schwellenwert, nach dem die Warnung ausgelöst wird.

  4. Klicken Sie auf Weiterleiten.

Lag in Replicat identifizieren

So identifizieren Sie Verzögerungen im Replicat-Prozess und ändern Spalten einer Tabelle:

  1. Aktivität in der Quelldatenbank für alle Tabellen unterbrechen, die mit Oracle GoldenGate verknüpft sind.

  2. Admin-Client starten.

  3. Führen Sie diesen Befehl für die Replicat-Gruppe aus:

INFO REPLICAT *group*
  1. Prüfen Sie in der Zeile Checkpoint Lag, ob eine Replicat-Verzögerung vorliegt. Setzen Sie bei Bedarf INFO REPLICAT fort, bis die Verzögerung Null ist. Dies bedeutet, dass alle Daten im Trail verarbeitet wurden.

  2. Stoppen Sie die Replicat-Gruppe.

STOP REPLICAT *group*
  1. Führen Sie die Tabellenänderungen in den Zieldatenbanken aus.

  2. Replicat-Prozess starten

START REPLICAT *group*
  1. Ermöglicht die Fortsetzung der Benutzeraktivität in allen Quelltabellen, die mit Oracle GoldenGate verknüpft sind.