Vor dem Hinzufügen von Extract- und Replicat-Prozessen

Erfahren Sie mehr über die erforderlichen Voraussetzungskonfigurationen, bevor Sie Extract- und Replicat-Prozesse für ein Oracle GoldenGate-Deployment erstellen.

TRANDATA hinzufügen

Gültig für Db2 für i, Db2 LUW, Db2 z/OS, Oracle, PostgreSQL, SQL Server und Sybase.

Je nach Quelldatenbank muss das zusätzliche Logging aktiviert sein, um DML-Vorgänge zu erfassen. Es kann über das Menü Trandata einer Datenbankverbindung in der Weboberfläche oder im Admin-Client aktiviert werden, indem ADD TRANDATA oder ADD SCHEMATRANDATA (nur für Oracle) ausgegeben wird.

Das Hinzufügen von TRANDATA ist in einer Quelldatenbank für einen Extract für das anfängliche Laden nicht erforderlich. Wenn jedoch sowohl Extract als auch Change Data Capture-(CDC-)Extract beim erstmaligen Laden als Onlineinstanziierung verwendet werden, muss TRANDATA hinzugefügt werden, bevor der Extract beim ersten Laden gestartet wird.

TRANDATA oder SCHEMATRANDATA für Oracle AI Database aktivieren

Dies kann auf Tabellen-, Schema- oder globaler (Datenbank-)Ebene erfolgen.

Um zusätzliches Logging zu aktivieren, melden Sie sich auf der Seite DB-Verbindungen bei der Datenbank an, wählen Sie das Menü Trandata aus, und führen Sie die folgenden Schritte aus:

  1. Wählen Sie die Option "Tabelle" oder "Schema" nach Bedarf aus, und klicken Sie auf das Pluszeichen zum Hinzufügen.

  2. Geben Sie den Namen der Tabelle ein, für die Sie zusätzliches Logging einrichten müssen. Stellen Sie sicher, dass Sie den vollständigen Tabellennamen mit dem Schemanamen wie HR.EMP eingeben. Sie können auch Platzhalter anstelle eines bestimmten Tabellennamens verwenden.

  3. Klicken Sie auf Weiterleiten.

Sie können ADD TRANDATA beim erstmaligen Laden ohne CDC überspringen.

Sie können auch die Befehle ADD TRANDATA und ADD SCHEMATRANDATA zum Einrichten von Trandata und Trandata auf Schemaebene verwenden.

Hinweis: Bevor Sie den Befehl ADD TRANDATA ausführen, müssen Sie sich zuerst mit dem Befehl DBLOGIN bei der Datenbank anmelden, in der der Extract hinzugefügt wird. Führen Sie außerdem die Befehle ADD TRANDATA oder ADD SCHEMATRANDATA aus, bevor Sie den Extract hinzufügen.

TRANDATA für Nicht-Oracle-Datenbanken aktivieren

Gültig für Db2 i, Db2 LUW, Db2 z/OS, PostgreSQL, SQL Server und Sybase.

Dies kann auf Tabellen- oder globaler Ebene (Datenbankebene) erfolgen. Um zusätzliches Logging zu aktivieren, melden Sie sich auf der Seite DB-Verbindungen bei der Datenbank an, wählen Sie das Menü Trandata aus, und führen Sie die folgenden Schritte aus:

  1. Wählen Sie die Option Tabelle aus, und klicken Sie zum Hinzufügen auf das Pluszeichen.

  2. Geben Sie den Namen der Tabelle ein, für die Sie zusätzliches Logging einrichten müssen. Geben Sie den vollständigen Tabellennamen ein, z.B. EMPLOYEE. Sie können auch Platzhalter anstelle eines bestimmten Tabellennamens verwenden.

  3. Klicken Sie auf Weiterleiten.

So aktivieren Sie Change Capture für Db2 für i

Um Änderungen an einer Tabelle in einem Journal zu erfassen, können Sie den Befehl STRJRNPF in der IBM i-Befehlszeile ausführen oder den Befehl ADD TRANDATA im Admin-Client ausführen. Der Befehl ADD TRANDATA ruft STRJRNPF auf und ist die empfohlene Methode zum Starten der Journalerstellung für Tabellen, da er sicherstellt, dass das erforderliche Journalbildattribut (IMAGES): *BOTH im Befehl STRJRNPF festgelegt wird.

Der Befehl ADD TRANDATA lautet:

ADD TRANDATA table_specification

Dabei ist table_specification eine der folgenden Optionen:

-

*schema.table* [JOURNAL *library/journal*]

-

*library/file* [JOURNAL *library/journal]*)

Standardjournalbuchung angeben

Um ein Standard-Journal für mehrere Tabellen oder Dateien im Befehl ADD TRANDATA anzugeben, verwenden Sie vor dem Absetzen von ADD TRANDATA den folgenden Befehl, anstatt das Schlüsselwort JOURNAL anzugeben.

DEFAULTJOURNAL *library/journal*

Bei jedem ADD TRANDATA-Befehl ohne Journal wird das Journal aus DEFAULTJOURNAL übernommen.

Um die aktuelle Einstellung von DEFAULTJOURNAL anzuzeigen, können Sie den Befehl Ohne Argumente absetzen.

Standardbuchungsspezifikation entfernen**

Um die Verwendung eines Standardjournals zu entfernen, verwenden Sie den folgenden Befehl:

DEFAULTJOURNAL CLEAR

So aktivieren Sie Change Capture für Db2 LUW

Konfigurieren Sie Db2, um Datenänderungen im erweiterten Format zu protokollieren, das von der Funktion DATA CAPTURE CHANGES der Befehle CREATE TABLE und ALTER TABLE bereitgestellt wird. Dieses Format stellt Oracle GoldenGate die gesamten Vorher- und Nachher-Images von Zeilen bereit, die durch Aktualisierungsanweisungen geändert werden. Führen Sie den Befehl ALTER TABLE wie folgt aus:

Geben Sie den folgenden Befehl aus.

ADD TRANDATA owner.table

wobei owner.table der vollqualifizierte Name der Tabelle ist. Sie können mehrere Tabellennamen mit einem Platzhalter angeben.

ADD TRANDATA gibt den folgenden Befehl aus, der das Before-Image von LONGVAR-Spalten protokolliert:

ALTER TABLE name DATA CAPTURE CHANGES INCLUDE LONGVAR COLUMNS;

Beispiel 7-1 zum Ausschließen des LONGVAR-Loggings:

Um die INCLUDE LONGVAR COLUMNS-Klausel aus dem Befehl ALTER TABLE zu weglassen, verwenden Sie ADD TRANDATA mit der Option EXCLUDELONG.

ADD TRANDATA *owner.table*, EXCLUDELONG

Hinweis: Wenn LONGVAR-Spalten vom Logging ausgeschlossen werden, können die Oracle GoldenGate-Features, die vor Images erforderlich sind, wie die Parameter GETUPDATEBEFORES, NOCOMPRESSUPDATES und NOCOMPRESSDELETES, Fehler zurückgeben, wenn Tabellen diese Spalten enthalten. Einen Workaround finden Sie in den Optionen REQUIRELONGDATACAPTURECHANGES | NOREQUIRELONGDATACAPTURECHANGES des Parameters TRANLOGOPTIONS.

Checkpointtabelle hinzufügen

Eine Checkpoint-Tabelle ist für alle nicht parallelen Replicats erforderlich und muss in der Datenbank erstellt werden, bevor ein Replicat hinzugefügt wird. Ein Checkpoint ist mit der Transaktion erfolgreich oder nicht erfolgreich. Daher stellt Replicat sicher, dass eine Transaktion nur einmal angewendet wird, auch wenn der Prozess oder die Datenbank nicht erfolgreich ist.

Sie können die Checkpoint-Tabelle im Checkpoint-Abschnitt anzeigen. Um eine Checkpoint-Tabelle hinzuzufügen, melden Sie sich auf der Seite "DB-Verbindungen" bei der Zieldatenbank an, wählen Sie Checkpoint aus, und führen Sie die folgenden Schritte aus:

  1. Klicken Sie auf das Pluszeichen, um das Hinzufügen einer Checkpoint-Tabelle zu aktivieren.

  2. Fügen Sie den Namen der Checkpoint-Tabelle im Format hinzu

    *table*.*checkpoint_table_name*
  3. Klicken Sie auf Weiterleiten. Nachdem der Checkpoint erstellt wurde, können Sie in der Liste der Checkpoint-Tabellen sehen.

Informationen zum Ausführen dieser Aufgabe über die Befehlszeile finden Sie unter ADD CHECKPOINTTABLE in der Befehlszeilenschnittstellenreferenz für Oracle GoldenGate.

Checkpoint-Tabelle mit Journaling in Db2 für i hinzufügen

In der Db2 für die i-Zieldatenbank muss jeder Checkpoint, der in die Checkpoint-Tabelle geschrieben wird, innerhalb der Replicat-Transaktion protokolliert werden.

Eine gängige Methode zum Erstellen der Checkpoint-Tabelle mit Journaling ist die folgende:

  1. Erstellen Sie auf dem Zielsystem die Checkpoint-Datei Replicat.

    Legen Sie den Namen des Journals fest, das für die Checkpoint-Datei verwendet werden soll. Der Standardwert ist GGSCHEMA/OGGJRN.

    Sie können sie ändern, indem Sie den Standardwert für die aktuelle Admin-Clientsession mit dem Befehl DEFAULTJOURNAL festlegen. Die Syntax des DEFAULTJOURNAL-Befehls lautet:

    DEFAULTJOURNAL *library_name*/*journal_name*

    Dabei ist library_name der Name der Bibliothek und journal_name der Name des Journals, das für nachfolgende Vorgänge verwendet werden soll, für die optional ein Journal angegeben werden kann.

  2. Checkpointtabelle hinzufügen

    ADD CHECKPOINTTABLE *library_name*.chkptab
  3. Fügen Sie Journaling zur Checkpoint-Tabelle hinzu.

    ADD TRANDATA *library_name*.CHKPTAB

Weitere Informationen zum Erstellen einer Checkpoint-Tabelle finden Sie unter Checkpoint-Tabelle hinzufügen.

Heartbeat-Tabelle hinzufügen

Taktüberwachungstabellen dienen zur Überwachung von Verzögerungen während des gesamten Datenreplikationszyklus. Automatische Heartbeats werden von jeder Quelldatenbank an die Replikationsstreams gesendet. Dazu werden die Datensätze in einer Heartbeat-Seed-Tabelle und einer Heartbeat-Tabelle aktualisiert und ein Heartbeat-History-Datensatz erstellt.

Jeder Prozess im Replikationsstream aktualisiert den Heartbeat-Datensatz mit Tracking-Informationen, die dann in der Heartbeat-Tabelle der Zieldatenbank aktualisiert werden. Diese Heartbeat-Datensätze werden in den Zieldatenbanken in die Heartbeat-Tabelle eingefügt oder aktualisiert.

Hinweis: Das Erstellen der Heartbeat-Tabelle ist optional, wird jedoch empfohlen.

Um eine Heartbeat-Tabelle hinzuzufügen, melden Sie sich auf der Seite "DB-Verbindungen" bei jeder Quell- und Zieldatenbank an, wählen Sie das Heartbeat-Menü aus, und führen Sie dann die folgenden Schritte aus:

  1. Klicken Sie auf das Pluszeichen (+) neben, um eine Takttabelle hinzuzufügen.

  2. Übernehmen Sie die Standardeinstellungen, oder ändern Sie die verfügbaren Werte nach Bedarf.

    Hinweis: Wählen Sie diese Option für Datenbanken mit einer Option für Nur Ziel aus, wenn diese Datenbank nur als Zieldatenbank im Replikationsstream verwendet werden soll, um unnötige Jobs zu vermeiden, die mit einer Quelldatenbank verknüpft werden.

  3. Klicken Sie auf Weiterleiten.

Um diese Aufgabe über die Befehlszeile auszuführen und wichtige datenbankspezifische Einschränkungen zu prüfen, lesen Sie ADD HEARTBEATTABLE in der Befehlszeilenschnittstellenreferenz für Oracle GoldenGate.

In den folgenden Schritten werden die Befehle zum Einrichten der Heartbeat-Tabelle beschrieben.

  1. Starten Sie den Admin Client über die Befehlszeile.

  2. Stellen Sie eine Verbindung zum Deployment über den Admin-Client her.

    CONNECT https://remotehost:*srvmgrport* DEPLOYMENT *deployment_name* AS *deployment_user* PASSWORD *deployment_password*

    Beispiel:

    CONNECT https://remotehost:16000 DEPLOYMENT *ggdep_postgres* AS ggadmin PASSWORD P@ssWord
  3. Stellen Sie mit dem Befehl DBLOGIN USERIDALIAS eine Verbindung zur Quell- und Zieldatenbank her. Das folgende Beispiel zeigt die Verbindung zur Quelldatenbank mit dem Zugangsdatenalias ggeast:

    (https://remotehost:16000 ggdep_postgres)> DBLOGIN USERIDALIAS ggeast
  4. Heartbeat-Tabelle hinzufügen:

    (https://remotehost:16000 ggdep_postgres)> ADD HEARTBEATTABLE

Optional können Sie für eine Nur-Zieldatenbank, die nur für die unidirektionale Replikation verwendet wird, die Option TARGETONLY einschließen, mit der keine Heartbeat-Datensatzaktualisierungsfunktion erstellt wird.

Einzelheiten zu Befehlsoptionen finden Sie unter ADD HEARTBEATTABLE.

Heartbeat-Aktualisierungs- und Löschfunktion für PostgreSQL ausführen

Oracle GoldenGate für PostgreSQL unterstützt eine Heartbeat-Tabellenkonfiguration mit einigen Einschränkungen hinsichtlich der Aktualisierungs- und Löschaufgaben.

Die Heartbeat-Tabelle und die zugehörigen Funktionen werden mit dem Befehl ADD HEARTBEATTABLE erstellt. Für PostgreSQL gibt es jedoch keinen automatischen Scheduler zum Aufrufen der Funktionen.

Eine Hauptfunktion steuert sowohl die Heartbeat-Datensatzaktualisierung als auch die Löschfunktionen der Heartbeat-Historientabelle. Die Standardeinstellungen für diese beiden Funktionen sind 60 Sekunden für die Aktualisierungshäufigkeit und 1 Tag für das Löschen von Verlaufsdatensätzen. Dadurch werden standardmäßig alle Datensätze gelöscht, die älter als 30 Tage sind.

Um die Haupt-Heartbeat-Datensatzfunktion aufzurufen, müssen Benutzer einen Job auf Betriebssystemebene erstellen, der ausgeführt wird

"select ggschema.gg_hb_job_run();"

Wenn diese Funktion aufgerufen wird, berücksichtigt sie die Einstellungen zum Löschen der Aktualisierungshäufigkeit und des Verlaufsdatensatzes und verwendet diese Werte unabhängig von den Scheduler-Einstellungen für den Funktionsaufruf.

Beispiel: Benutzer können einen Cron-Job mit der folgenden Syntax erstellen und jede Minute ausführen.

PGPASSWORD="gguserpasswd" psql -U gguser -d dbname -h remotehost -p 5432 -c "select ggschema.gg_hb_job_run();" >/dev/null
 2>&1

Windows Task Scheduler, pgAdmin oder pg_cron sind andere Programme, die zum Planen des Funktionsaufrufs verwendet werden können.

Oracle GoldenGate CDC-Bereinigungsaufgabe erstellen

Für SQL Server-Benutzer müssen Sie Oracle GoldenGate CDC Cleanup-Aufgaben erstellen, bevor Sie einen Extract hinzufügen. Dazu führen Sie die Schritte unter Details zum Oracle GoldenGate CDC-Bereinigungsprozess aus.

PostgreSQL: Überlegungen zum Extrahieren für Remote-Deployment

Bei einem Remote-Deployment werden die Quelldatenbank und Oracle GoldenGate auf separaten Servern installiert. Remote-Deployments sind die einzige verfügbare Option zur Unterstützung von Cloud-Datenbanken, wie Azure für PostgreSQL oder Amazon Aurora PostgreSQL.

Bei Remote-Deployments muss die Endianabilität des Betriebssystems zwischen dem Datenbankserver und dem Oracle GoldenGate-Server identisch sein.

Serverzeit- und -zeitzonen des Oracle GoldenGate-Servers müssen mit denen des Datenbankservers synchronisiert werden. Wenn dies nicht möglich ist, muss die Positionierung eines Extrakts beim Erstellen oder Ändern eines Extrakts durch LSN erfolgen.

In Remote Capture-Anwendungsfällen kann die Verwendung von SQLEXEC zu zusätzlicher Latenz führen, da der Vorgang SQLEXEC für jeden Datensatz, den der Extract verarbeitet, seriell ausgeführt werden muss. Wenn eine spezielle Filterung, die eine SQLEXEC erfordern würde, von einem Remotehub-Extrakt ausgeführt wird und die Performanceauswirkungen zu schwerwiegend sind, muss der Extract-Prozess möglicherweise näher an die Quelldatenbank verschoben werden.

Bei Remote-Deployments ist eine geringe Netzwerklatenz wichtig. Es wird empfohlen, dass die Netzwerklatenz zwischen dem Oracle GoldenGate-Server und dem Quelldatenbankserver weniger als 1 Millisekunde beträgt.