ALTER EXTRACT

Verwenden Sie ALTER EXTRACT für die folgenden Zwecke:

Bevor Sie diesen Befehl benutzen, stoppen sie den Extract mit den Befehl STOP EXTRACT group_name.

Syntax

ALTER EXTRACT group-name
         [, BEGIN {NOW | yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]} |
|            [, EXTRBA archive-offset-number]
|            [, ADD_EXTRACT_attribute  | SCN value]
|            [, LSN
|            [, EOL
|            [, DESC
|            [ CRITICAL    [ YES | NO ]     ]
|            [ ENCRYPTIONPROFILE     encryption-profile-name]
|            [ PROFILE
|                [ AUTOSTART   [ YES | NO ]
|                  [ DELAY     delay-number   ] ]
|                  [ AUTORESTART [ YES | NO ]
|                       [ RETRIES          retries-number ]
|                       [ WAITSECONDS      wait-number    ]
|                       [ RESETSECONDS     reset-number   ]
|                       [ DISABLEONFAILURE [ YES | NO ] ] ] ]
|             [ LOGNUM lognum]
|             [ LOGPOS logpos

Die folgenden ALTER EXTRACT-Optionen für Db2 for i werden unterstützt, um Extract für ein Journal zu positionieren:

ALTER EXTRACT {BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]Z]}
[JOURNAL journal_library/journal_name [JRNRCV receiver_library/
  receiver_name]] |
, EOL [JOURNAL journal_library/journal_name
  [JRNRCV receiver_library/receiver_name]] |
, SEQNO sequence_number [JOURNAL journal_library/journal_name
  [JRNRCV receiver_library/receiver_name]]}

BEGIN {NOW | yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]]Z} [JOURNAL journal_library/journal_name [JRNRCV receiver_library/ receiver_name]] | , EOL [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]] | , SEQNO sequence_number [JOURNAL journal_library/journal_name [JRNRCV receiver_library/receiver_name]]

Diese IBM for i-Optionen ermöglichen eine journal-spezifische Extract-Positionierung, nachdem der globale Startpunkt mit ADD EXTRACT ausgegeben wurde. Ein spezifisches Journalpositionsset mit ALTER EXTRACT hat keine Auswirkungen auf globale Positionen, die zuvor mit ADD EXTRACT oder ALTER EXTRACT festgelegt wurden. Eine globale Position, die zuvor mit ALTER EXTRACT festgelegt wurde, setzt allerdings jede spezifische Journalposition außer Kraft, die zuvor in derselben Extract-Konfiguration festgelegt wurde.

Hinweis: SEQNO, wenn es mit einem Journal in `ALTER verwendet wird

          EXTRACT`, is the journal sequence number that is relative to that specific journal, not the system sequence number that is global across journals.
          {: .infoboxnote}

group-name

Der Name der zu ändernden Extract-Gruppe.

{BEGIN {NOW Tyyyy-mm-dd[ hh:mi:[ss[.cccccc]]]Z}

NOW

Bei allen Datenbanken außer Db2 LUW gibt NOW die Zeit an, zu der der Befehl ALTER EXTRACT ausgegeben wird.

NOW gibt die Zeit an, zu der der Befehl ALTER EXTRACT ausgegeben wird.

Für Db2 LUW enthalten nur die Datensätze für Commit und Ende von Transaktionen Zeitstempel. Daher kann die Extract-Startposition nur relativ zu diesen Zeitstempeln berechnet werden. Diese Einschränkung gilt für die von Oracle GoldenGate verwendete API. Die Positionierung nach Zeitstempel ist nicht genau und kann auch viel Zeit in Anspruch nehmen. Es wird empfohlen, nach Möglichkeit die Option LRI oder EOL zu verwenden.

YYYY-MM-DDThh:mm:ssZ

Datum und Uhrzeit (Zeitstempel) im angegebenen Format. Beispiel: 2017-07-14T14:54:45Z.

yyyy-mm-dd[ hh:mi:[ss[.cccccc]]]

Datum und Uhrzeit (Zeitstempel) im angegebenen Format. Bei einem Oracle-Extract im integrierten Modus muss der Zeitstempelwert größer als der Zeitstempel sein, zu dem der Extract bei der Datenbank registriert wurde.

Die Positionierung anhand des Zeitstempels in einem SQL Server-Transaktionslog wird durch die folgenden Merkmale von SQL Server beeinflusst:

Die Positionierung bei einer LSN ist präzise.

Die Positionierung nach Zeitstempel in PostgreSQL umfasst die folgenden Szenarios:

START

Gültig für PostgreSQL.

Fügt einen Extract ohne Erwähnung von BEGIN NOW oder LSN hinzu. Extract beginnt automatisch bei der Neustartposition des Replikationsslots.

ADD_EXTRACT_attribute

Sie können alle mit dem Befehl ALTER EXTRACT angegebenen Attribute ändern. Ausnahme:

Wenn diese Ausnahmen zutreffen, löschen Sie die Extract-Gruppe, und fügen Sie sie erneut hinzu.

Wenn Sie die Option BEGIN verwenden, kombinieren Sie keine anderen Optionen in der Anweisung. Geben Sie separate Anweisungen aus. Beispiel:

ALTER EXTRACT exte, BEGIN 2019-01-01
ALTER EXTRACT exte, ETROLLOVER
ALTER EXTRACT exte, SCN 789000

Wenn Sie die Option SCN oder BEGIN für einen integrierten Extrakt verwenden, ist DBLOGIN erforderlich, und der angegebene SCN- oder Zeitstempelwert darf nicht unter dem ersten SCN- oder Zeitstempelwert der Ausgangsserver liegen. Geben Sie den folgenden Befehl aus, um die erste SCN des Ausgangsservers zu ermitteln:

INFO EXTRACT group_name, SHOWCH DETAIL

Der erste SCN-Wert wird wie im folgenden Beispiel gezeigt aufgeführt:

Integrated Extract outbound server first scn: 0.665884 (665884)

EXTRBA offset_number

Gültig für Db2 z/OS.

Gibt die relative Byteadresse in einem Transaktionslog an, bei der mit der Datenerfassung begonnen werden soll.

Das erforderliche Format 0Xnnn ist. Dabei ist nnn eine 1- bis 20-stellige Hexadezimalzahl. (Das erste Zeichen ist die Ziffer Null, und das zweite Zeichen kann ein Groß- oder Kleinbuchstabe x sein.)

EOL

Gültig für Db2 for i, Db2 LUW, MySQL, PostgreSQL und SQL Server.

Legt fest, dass die Verarbeitung am Ende der Logdateien (oder Journale) beginnt, in die der nächste Datensatz geschrieben wird. Aktive Transaktionen werden nicht erfasst.

Bei Db2 LUW wird festgelegt, dass die Verarbeitung beim aktiven LRI-Wert in den Logdateien beginnt. Der aktive LRI-Wert ist die Position am Ende der Logdateien, in die der nächste Datensatz geschrieben wird. Aktive Transaktionen werden nicht erfasst.

Bei PostgreSQL ist DBLOGIN für die Positionierung nach EOL erforderlich.

Für MySQL wird die Position entsprechend dem Dateiende bestimmt, und Transaktionen werden ab dort gelesen. Die EOL-Position ist nicht genau, wenn kontinuierlich Daten in das binäre Log geschrieben werden.

TRANLOG LRI LRI_number

(Db2 LUW) Bei Db2 LUW-Systemen können Sie mit dieser Option den LRI-Datensatzwert für das Checkpointtransaktionslog angeben.

Bei PostgreSQL ist DBLOGIN für die Positionierung nach EOL erforderlich.

REPORT file_name

Gibt den vollständigen Pfadnamen einer Extract-Berichtsdateien in einem anderen Speicherort als dem Standard dirrpt im Oracle GoldenGate-Verzeichnis.

SCN value

Gültig für Oracle.

Startet Extract bei der Transaktion im Redo-Log mit der angegebenen Oracle-Systemänderungsnummer (SCN). Bei einem Extract muss der SCN-Wert größer als die SCN sein, an der der Extract bei der Datenbank registriert wurde. Wenn Sie SCN oder die Option BEGIN verwenden, ist DBLOGIN erforderlich, und der angegebene SCN- oder Zeitstempelwert darf nicht unter dem ersten SCN- oder Zeitstempelwert der Ausgangsserver liegen.

LSN value

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

Gibt die Transaktions-LSN an, bei der die Datenerfassung begonnen werden soll. Ein Alias für diese Option ist EXTLSN.

Für Db2 z/OS kann der LSN-Wert entweder eine Reihe hexadezimaler Ziffern oder eine Reihe von Dezimalzahlen sein. Im hexadezimalen Format muss 0X oder 0x vorangestellt sein, gefolgt von 1 bis 20 Hexadezimalziffern: 0-9, a-g oder A-G. Im Dezimalformat gibt es kein Präfix, und der Wert enthält 1-25 Dezimalzahlen von 0 bis 9.

Bei PostgreSQL kann der LSN-Wert hi oder lo lauten. Setzen Sie den Wert als hi für den Einstiegspunkt der Logdatei. Lo ist der Offset in der Logdatei. Die LSN-Position muss zwischen der Neustartposition des Replikationsslots und dem aktuellen Speicherort des Write-Ahead-Logs liegen. Wenn die angegebene Position selbst im genannten Bereich liegt, löst Extract einen Fehler aus.

Für SQL Server gibt LSN die Transaktion LSN an, bei der die Datenerfassung begonnen werden soll. Ein Alias für diese Option ist EXTLSN.

Die angegebene LSN muss als gültige tran_begin_lsn in der Systemtabelle cdc.lsn_time_mapping vorhanden sein. Andernfalls wird versucht, die Extract-Positionation nach dem angegebenen LSN-Wert durchzuführen.

Gültige LSN-Spezifikationen für SQL Server umfassen:

Mit der folgenden Abfrage finden Sie die minimale verfügbare LSN:

SELECT min([tran_begin_lsn]) FROM [cdc].[lsn_time_mapping] with (nolock) where tran_id <> 0x00

Die folgenden Beispiele zeigen die Verwendung eines LSN-Wertes für Db2 z/OS:

Beispiel 1:

ALTER EXTRACT extn TRANLOG, LSN 0xDEE40E4F27A3245400

Beispiel 2:

ALTER EXTRACT extn TRANLOG, LSN 22216433159121980904448

Das folgende Beispiel zeigt den LSN-Wert für SQL Server:

ALTER EXTRACT extn TRANLOG, LSN 0X00000d7e:0000036b:0001

LOGNUM

Gültig für MySQL.

Das ist die Logdateinummer. Beispiel: Wenn der Name der erforderlichen Logdatei test.000034 lautet, ist der LOGNUM-Wert 34. Extract sucht nach dieser Logdatei. Hinweis: In der Microservices-Architektur verläuft ALTER EXTRACT nicht möglich, wenn der LOGNUM-Wert Nullen vor dem Wert enthält. Beispiel: ALTER EXTRACT ext1, TRANLOG, LOGNUM 000001, LOGPOS 0 verläuft nicht erfolgreich. Setzen Sie LOGNUM stattdessen auf 1, damit dieses Beispiel erfolgreich ausgeführt wird.

LOGPOS

Gültig für MySQL.

Das ist ein Ereignis-Offset-Wert innerhalb der Logdatei, der einen bestimmten Transaktionsdatensatz identifiziert. Ereignis-Offset-Werte werden im Headerabschnitt eines Logdatensatzes gespeichert. Zur Positionierung am Anfang einer binlog-Datei setzen Sie LOGPOS auf 0.

ETROLLOVER

Wird für manuelle Recovery-Situationen verwendet, die eine Neupositionierung und erneute Generierung von Traildateien für einen primären Extract erfordern, sowie bei Upgrades von älteren Oracle GoldenGate-Versionen.

Dadurch erstellt Extract eine neue Inkarnation der Traildatei und wechselt zur nächsthöheren Datei in der Trailsequenz beim Neustart. Dadurch müssen Reader wie Pump oder Replicat manuell neu auf die neue Trailsequenznummer positioniert werden.

Mit ETROLLOVER erfasst Extract alle Datensätze nach der angegebenen SCN, bei der Extract beginnt, unabhängig davon, ob sie bereits erfasst und in den Trail geschrieben wurden oder nicht. Ohne ETROLLOVER überspringt Extract die Erfassung aller Datensätze, die bereits erfasst und in den Trail geschrieben werden.

Ab 19c gilt bei der Verarbeitung des Verteilungsservice Folgendes:

DESC ‘description’

Gibt eine Beschreibung der Gruppe ein, wie 'Extracts account_tab on Serv1'. Schließen Sie die Beschreibung in einfache Anführungszeichen ein. Sie können das abgekürzte Schlüsselwort DESC oder das vollständige Wort DESCRIPTION verwenden.

ENCRYPTIONPROFILE

Gibt den Namen des Verschlüsselungsprofils für den Extract an. Bei dem Namen muss die Groß-/Kleinschreibung beachtet werden. Daher müssen Sie genau den Namen verwenden, den Sie bei ADD EXTRACT eingegeben haben.

GTIDSET gtidset

Gültig für MySQL.

Gibt die anfängliche Positionierung von Extract mit der Positionstypoption des GTID-Sets für GTID-basierte Erfassung für MySQL an. Die unterstützten MySQL-Quellen für das GTID-Set sind MySQL Server 8.0, MySQL Server 5.7, MySQL Database Service (MDS). Die maximal unterstützte GTID-Setgröße ist 64 KB.

Syntax:

ALTER EXTRACT extract_name, TRANLOG, GTIDSET gtidset

Die folgenden Beispiele umfassen alle Kombinationen der gültigen Formate von GTID-Sets.

Beispiel 1:

ALTER EXTRACT exte, TRANLOG, GTIDSET "E11FA47-71CA-11E1-9E33-C80AA9429562:4"

Beispiel 2:

ALTER EXTRACT exts, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-10"

Beispiel 3:

ALTER EXTRACT extn, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-3:11:47-49"

Beispiel 4:

ALTER EXTRACT extw, TRANLOG, GTIDSET "2174B383-5441-11E8-B90A-C80AA9429562:1-3,24DA167-0C0C-11E8-8442-00059A3C7B00:1-19"

Hinweis: Wie in Beispiel 4 gezeigt, wird dieses GTID-Set, wenn das GTID-Set mehrere Uuids enthält, zur Bildung einer REST-API-Anforderung in mehrere GTID-Sets mit einem Komma-Trennzeichen unterteilt.

CRITICAL

Gibt an, ob der Prozess für das Deployment kritisch ist.

PROFILE

Name des Profils für den automatischen Start. Bei dem Namen muss die Groß-/Kleinschreibung beachtet werden. Daher müssen Sie genau den Namen verwenden, den Sie bei ALTER EXTRACT eingegeben haben.

AUTOSTART

Gibt an, ob der verwaltete Prozess automatisch beim Start des Administrationsservice gestartet werden muss. Der Standardwert ist YES.

RETRIES

Die maximale Anzahl der Wiederholungen bei Neustarts der Aufgabe, bevor Wiederholungsversuche abgebrochen werden. Diese Einstellung ist optional.

WAITSECONDS

Die Dauer (in Sekunden), während der Wiederholungsversuche gezählt werden.

RESETSECONDS

Setzt die Dauer, während der Wiederholungsversuche gezählt werden, zurück.

DISABLEONFAILURE

Bei TRUE wird die Aufgabe deaktiviert, nachdem die maximale Anzahl an Wiederholungen erreicht wurde.

INFO EXTRACT group-name, SHOWCH DETAIL

Der erste SCN-Wert wird wie im folgenden Beispiel gezeigt aufgeführt:

Integrated Extract outbound server first scn: 0.665884 (665884)

Beispiele


Mit dem folgenden Befehl ändern Sie Extract so, dass Daten ab dem 1. Januar 2019 verarbeitet werden.

ALTER EXTRACT exte, BEGIN 2019-01-01

Mit dem folgenden Befehl ändern Sie Extract so, dass die Verarbeitung bei einer bestimmten Position im Trail gestartet wird.

ALTER EXTRACT exte, EXTSEQNO 26, EXTRBA 338

Mit dem folgenden Befehl ändern Sie Extract in einer SQL Server-Umgebung so, dass die Verarbeitung bei einer bestimmten LSN gestartet wird.

ALTER EXTRACT exte, LSN 0Xd7e:36b:1

Mit dem folgenden Befehl wechselt Extract zur nächsthöheren Datei in der Trailsequenz.

ALTER EXTRACT exte, ETROLLOVER

Mit dem folgenden Befehl wird ein Extract-Upgrade auf den integrierten Capture-Modus durchgeführt.

ALTER EXTRACT exte, UPGRADE INTEGRATED TRANLOG

Der folgende Befehl verwendet ETROLLOVER zum Verhindern der Filterung doppelter Datensätze mit abwärts-SCN 778899.

ALTER EXTRACT exte, SCN 778899
ALTER EXTRACT exte ETROLLOVER
START EXTRACT exte

Wenn Sie Extract in den vorherigen SCN-Wert ändern, ohne ETROLLOVER zu verwenden, werden doppelte Datensätze nicht verarbeitet. Mit dem folgenden Befehl ändern Sie Extract zum Filtern doppelter Datensätze:

ALTER EXTRACT exte, SCN 778899
START EXTRACT exte

Der folgende Befehl zeigt ALTER EXTRACT für einen IBM for i-Journalstartpunkt.

ALTER EXTRACT exte, SEQNO 1234  JOURNAL accts/acctsjrn

Der folgende Befehl zeigt ALTER EXTRACT für einen IBM for i-Journal- und Empfangsstartpunkt.

ALTER EXTRACT exte, SEQNO 1234 JOURNAL accts/acctsjrn JRNRCV accts/jrnrcv0005

Mit dem folgenden Beispiel ändern Sie einen Extract auf einem Db2 LUW-System.

ALTER EXTRACT exte, TRANLOG LRI 8066.322711

Das folgende Beispiel zeigt die mit PostgreSQL verwendeten ALTER EXTRACT-Optionen:

ALTER EXTRACT exte, EOL
ALTER EXTRACT POSTEXT, LSN 0/156784
ALTER EXTRACT POSTEXT, BEGIN 2022-02-18T14:50:43.4230Z