ADD EXTRACT
Gültig für unterstützte Datenbanken Db2, HP NonStop, MySQL, Oracle, PostgreSQL, SQL Server, Sybase ASE und Yugabyte.
Mit ADD EXTRACT können Sie einen Capture-Prozess der Quelldatenbank erstellen, der als Extract bezeichnet wird. Der Extract kann als Datenänderungs-Extract erstellt werden, bei dem aktuelle Transaktionen aus dem Datenbanklog oder je nach Datenbankanbieter auch auf andere Weise erfasst werden. Alternativ dazu kann er auch als Extract für anfängliches Laden erstellt werden, bei dem die in den Datenbanktabellen vorhandenen Datensätze erfasst werden.
Es wird empfohlen, pro Quelldatenbank nur einen Datenänderungs-Extract oder einen Extract für anfängliches Laden zu erstellen. In seltenen Fällen kann jedoch durch Verwendung mehrerer Extracts pro Datenbank der Capture-Durchsatz verbessert werden.
Oracle GoldenGate kann eine hohe Anzahl nebenläufiger Extract- und Replicat-Prozesse pro Deployment unterstützen, abhängig von den im Betriebssystem verfügbaren Ressourcen. Es wird jedoch empfohlen, beim Hinzufügen von Extract- oder Replicat-Prozessen die Systemressourcen zu überwachen und die Gesamtanzahl an Prozessen pro Deployment auf höchstens 300 zu begrenzen.
Hinweis:
-
Wenn Sie einen Extract mit demselben Namen wie einen alten Extract erstellen, stellen Sie sicher, dass der alte Extract vollständig entfernt und gelöscht wurde. Mit DELETE EXTRACT können Sie den EXTRACT und alle zugehörigen Komponenten entfernen.
-
Dieser Befehl darf höchstens 500 Byte für alle Schlüsselwörter und Eingaben enthalten, einschließlich des für die Option
DESCeingegebenen Textes. -
Bei Db2 for i richtet dieser Befehl einen globalen Startpunkt für alle Journale ein und ist als erster Schritt erforderlich. Nachdem sie den Befehl
ADD EXTRACTausgegeben haben, können Sie ein beliebiges Journal optional mit dem BefehlALTER EXTRACTund eine geeignete Journaloption bei einer bestimmten Journalsequenznummer positionieren. -
Stellen Sie für Oracle- und PostgreSQL-Datenbanken eine Verbindung zur Quelldatenbank mit
DBLOGIN USERIDALIASher, und geben Sie dann den BefehlREGISTER EXTRACTaus, bevor Sie den Extract hinzufügen. Weitere Informationen finden Sie im BefehlREGISTER EXTRACT. -
Stellen Sie für SQL Server vor dem Hinzufügen des Extracts mit
DBLOGIN USERIDALIASeine Verbindung zur Quelldatenbank her. Das ist für das Binding der Zugangsdateninformationen mit dem Extract-Prozess durch den Administrationsservice erforderlich.
Syntax
ADD EXTRACT extract-name
| { SOURCEISTABLE |
| [ INTEGRATED ] TRANLOG
| {, BEGIN [ NOW | yyyy-mm-ddThh:mm.ssZ | LSN value | EOL | EOF | EXTRBA archive-offset-number | SCN scn }
| [, DESC description ]
| [, CRITICAL [ YES | NO ] ]
| [, ENCRYPTIONPROFILE encryption-profile-name]
| [, GTIDSET gtidset
| [, 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]
extract_name
Der Name eines Extracts. Er kann bis zu acht Zeichen enthalten. Informationen hierzu finden Sie unter Namen für Prozesse und Dateien auswählen.
SOURCEISTABLE
Erstellt eine Extract-Aufgabe, die ganze Datensätze für einen anfänglichen Ladevorgang mit Oracle GoldenGate aus den angegebenen Tabellen extrahiert. Geben Sie bei Verwendung von SOURCEISTABLE keine Serviceoptionen ein.
Aufgabenparameter müssen in der Parameterdatei angegeben werden. Informationen hierzu finden Sie in der Dokumentation für Oracle GoldenGate-Microservices in der Dokumentation für Oracle GoldenGate-Microservices.
TRANLOG [bsds_name]
Verwenden Sie diese Option für alle Datenbanken. Für TRANLOG ist die Option BEGIN erforderlich.
(Db2 auf z/OS) Sie können die Option bsds_name für Db2 auf einem z/OS-System verwenden, um den Bootstrap-Dataset-Dateiname des Transaktionslogs anzugeben, obwohl diese nicht erforderlich ist und nicht verwendet wird. Sie müssen keine vorhandenen TRANLOG-Parameter ändern.
(Oracle) Extract liest die Oracle-Redo-Logs direkt. Eine alternative Konfiguration finden Sie unter INTEGRATED TRANLOG.
INTEGRATED TRANLOG
Gültig für Oracle.
Fügt Extract im integrierten Capture-Modus hinzu. In diesem Modus wird Extract mit dem Datenbank-Logmining-Server integriert, der Logical Change Records (LCR) direkt an Extract übergibt. Bevor Sie INTEGRATED TRANLOG verwenden, geben Sie den Befehl REGISTER EXTRACT aus.
BEGIN {NOW |
yyyy-mm-ddthh:mm.ssZ} |
Gibt einen Zeitstempel in der Datenquelle an, bei dem die Verarbeitung beginnen soll.
Hinweis: Sie müssen den Extract registrieren, bevor Sie den Extract zu einem bestimmten Zeitstempel positionieren.
-
NOWNOWgibt den Zeitpunkt an, an dem der BefehlADD EXTRACTausgegeben wird. Beim Starten des Extracts wird versucht, den Extract zu einem Transaktionsgrenzwert oder nach diesem bestimmten Zeitpunkt zu positionieren. Die Positionierung eines Extract durchNOWist nicht so genau wie andere Methoden, wie die Positionierung durchLSN,SCNoderLRI, und erfordert, dass der Datenbankserver und der Oracle GoldenGate-Server auf die gleichen Zeiten und Zeitzonen gesetzt werden.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
LRIoderEOLzu verwenden. -
yyyy-mm-ddthh:mm.ssZDatum und Uhrzeit (Zeitstempel) im angegebenen Format. Beispiel: 2017-07-14T14:54:45Z.
-
yyyy-mm-ddT[ hh:mi:[ss[.cccccc]]]ZDatum und Uhrzeit (Zeitstempel) im angegebenen Format. Bei einem Oracle-Extract oder einem Extract für PostgreSQL muss der Zeitstempelwert größer als der Zeitstempel sein, zu dem der Extract bei der Datenbank registriert wurde.
Die Positionierung nach Zeitstempel in PostgreSQL umfasst die folgenden Szenarios:
-
Szenario 1
Wenn
track_commit_timestampaufoffgesetzt ist, wird die folgende Ausgabe beim Starten des Extract-Prozesses angezeigt, unabhängig von der Positionierungsmethode:2020-04-29T02:15:54Z -
Szenario 2
Wenn
track_commit_timestampvor der Extract-Registrierung aktiviert ist, wird der richtige Zeitstempel angezeigt, sobald die Datensätze an die Quelldatenbank übergeben werden, wie im folgenden Beispiel gezeigt:2020-04-29 02:19:07 INFO OGG-01515 Positioning to begin time Apr 29,2020 2:18:38 AM. -
Szenario 3
Wenn
track_commit_timestampnach der Extract-Registrierung aktiviert wird, sind die älteren Datensätze möglicherweise im Log verfügbar, für das der Commit-Zeitstempel nicht mit der zugehörigentransaction IDerstellt wird. Wenn Extract den Zeitstempel in diesem Fall nicht abrufen kann, wird der in Szenario 1 genannte Standardzeitstempel als Fallback verwendet. Die Ausgabe sieht in etwa wie folgt aus:020-04-29 01:55:07 INFO OGG-01517 Position of first record processed LSN: 0/221D028, Jan 1, 1970 12:00:00 PM. -
Ein Zeitstempel in der Vergangenheit kann nicht angegeben werden, wenn der Replikationsslot verschoben wurde.
-
EXTRBA archive-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, wo 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.
EOF
Gültig für MySQL, Db2 z/OS, Db2 LUW, SQL Server, PostgreSQL, Oracle GoldenGate for DAA.
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. Die Positionierung bei einer LSN ist präzise.
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:
-
Durch Doppelpunkt getrennte Hexadezimalzeichenfolge (8:8:4) mit Padding mit vorangestellten Nullen und dem Präfix 0X, z.B. 0X00000d7e:0000036b:0001
-
Durch Doppelpunkt getrennte Hexadezimalzeichenfolge (8:8:4) mit dem Präfix 0X und ohne vorangestellte Nullen, z.B. 0Xd7e:36b:1
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:
ADD EXTRACT extn TRANLOG, LSN 0xDEE40E4F27A3245400
Beispiel 2:
ADD EXTRACT extn TRANLOG, LSN 22216433159121980904448
Das folgende Beispiel zeigt den LSN-Wert für SQL Server:
ADD EXTRACT extn TRANLOG, LSN 0X00000d7e:0000036b:0001
LRI value
Gültig für Db2 LUW. Gibt eine Startposition in den Transaktionslogs beim Start von Extract an.
Sie können die LRI-Option für Db2 LUW-Systeme verwenden, um die LRI anzugeben, bei dem Extrakt mit der Erfassung von Datensätzen aus dem Transaktionslog beginnen kann. Sie können die LRI mit dem Db2-Utility db2logsForRfwd abrufen. Dieses Utility stellt die in den Db2-Logs vorhandenen LRI-Bereiche bereit.
Hinweis: Obwohl Extract bei einer bestimmten LRI positioniert werden können, ist LRI möglicherweise nicht die erste Lri, die von Extract verarbeitet wird. Zahlreiche Datensatztypen in den Logdateien werden von Extract ignoriert, wie interne Db2-Logdatensätze. Extract meldet die tatsächliche Start-LRI in der Extract-Berichtsdatei.
LOGNUM lognum
Gültig für MySQL.
Das ist die Logdateinummer. ADD EXTRACT verläuft nicht erfolgreich, wenn der LOGNUM-Wert Nullen vor dem Wert enthält. Beispiel: ADD 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 logpos
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.
SEQNO sequence_number
Gültig für Db2 for i. Startet Capture bei oder direkt nach einer Systemsequenznummer (einer Dezimalzahl mit bis zu 20 Ziffern).
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 im integrierten Modus muss der SCN-Wert größer als die SCN sein, an der der Extract bei der Datenbank registriert wurde. Weitere Informationen finden Sie unter REGISTER EXTRACT.
PARAMS file_name
Gibt den vollständigen Pfadnamen einer Extract-Parameterdatei in einem anderen Speicherort als dem Standard dirprm im Oracle GoldenGate-Verzeichnisan.
REPORT file_name
Gibt den vollständigen Pfadnamen einer Extract-Berichtsdateien in einem anderen Speicherort als dem Standard dirrpt im Oracle GoldenGate-Verzeichnis.
DESC ‘description’
Gibt eine Beschreibung der Gruppe ein, wie 'Extracts account_tab on Serv1'. Schließen Sie die Beschreibung in einfache Anführungszeichen ein.
ENCRYPTIONPROFILE
Gibt den Namen des Oracle GoldenGate-Verschlüsselungsprofils für den jeweiligen Client an.
GTIDSET gtidset
Gültig für MySQL.
Gibt die anfängliche Positionierung von Extract mit dem Positionstyp als GTID-Set für GTID-basierte Erfassung für MySQL an. Die unterstützten MySQL-Quellen für das GTID-Set sind MySQL Server 8.0 und höher. Die maximal unterstützte GTID-Setgröße ist 64 KB.
Syntax:
ADD EXTRACT extract_name, TRANLOG, GTIDSET gtidset
CRITICAL
Gibt an, ob der Prozess für das Deployment kritisch ist.
PROFILE
Name des Profils für den automatischen Start.
AUTOSTART
Gibt an, ob der verwaltete Prozess automatisch beim Start des Administrationsservice gestartet werden muss. Der Standardwert ist YES.
DELAY
Wartezeit in Sekunden bis zum Starten des Prozesses.
AUTORESTART
Steuert, wie der Prozess nach einer Beendigung neu gestartet wird.
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.
SOCKSPROXY {host_name |
IP_address}[:port] [PROXYCSALIAS credential_store_alias [PROXYCSDOMAIN credential_store_domain] |
Wird für einen Alias-Extract verwendet. Gibt den DNS-Hostnamen oder die IP-Adresse des Proxyservers an. Sie können eine dieser Optionen zum Definieren des Hosts verwenden, müssen aber die IP-Adresse angeben, wenn der DNS-Server nicht erreichbar ist. Verwenden Sie entweder eine IPv6 oder IPv4 zugeordnete Adresse als IP-Adresse, abhängig vom Stack des Zielsystems. Sie müssen die PROXYCSALIAS angeben. Darüber hinaus können Sie den zu verwendenden Port und die Zugangsdatenspeicherdomain angeben.
Beispiele
Im folgenden Beispiel wird eine Extract-Gruppe mit dem Namen exte erstellt, die Datenbankänderungen aus den Transaktionslogs erfasst. Die Extraktion beginnt mit Datensätzen, die zum Zeitpunkt der Erstellung und des Starts der Extract-Gruppe mit ADD EXTRACT generiert wurden.
ADD EXTRACT extn, TRANLOG, BEGIN NOW
Im folgenden Beispiel wird ein Extract-Gruppenname extw erstellt, um die Datenbankänderungen durch Positionierung des Extracts an einem bestimmten Zeitstempel aus den Transaktionslogs abzurufen:
ADD EXTRACT extn, TRANLOG, BEGIN NOW
REGISTER EXTRACT extn DATABASE
ALTER EXTRACT extn BEGIN 2020-08-02T06:05:30.000Z
Mit dem folgenden Befehl erstellen Sie eine integrierte Extract-Gruppe.
ADD EXTRACT extn, INTEGRATED TRANLOG, BEGIN NOW
Mit folgendem Befehl erstellen Sie einen Extract für anfängliches Laden namens extei.
ADD EXTRACT extn, SOURCEISTABLE
Die folgenden Beispiele umfassen alle Kombinationen der gültigen Formate von GTID-Sets.
Beispiel 1:
ADD EXTRACT exte, TRANLOG, GTIDSET "E11FA47-71CA-11E1-9E33-C80AA9429562:4"
Beispiel 2:
ADD EXTRACT exts, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-10"
Beispiel 3:
ADD EXTRACT extn, TRANLOG, GTIDSET "3E11FA47-71CA-11E1-9E33-C80AA9429562:1-3:11:47-49"
Beispiel 4:
ADD 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.
Die folgenden Beispiele erstellen und positionieren Extract bei einer bestimmten Oracle-Systemänderungsnummer (SCN) im Redo-Log.
ADD EXTRACT extn TRANLOG SCN 123456
ADD EXTRACT extn INTEGRATED TRANLOG SCN 123456
Mit dem folgenden Beispiel erstellen Sie einen Extract auf einem Db2 LUW-System.
ADD EXTRACT extn, TRANLOG LRI 8066.322711
Mit dem folgenden Befehl erstellen Sie einen Extract mit der Autostart-Option über Admin Client.
ADD EXTRACT extn, TRANLOG , BEGIN NOW , AUTOSTART yes