ADD SCHEMATRANDATA
Gültig für Oracle.
Mit ADD SCHEMATRANDATA können Sie das ergänzende Logging auf Schemaebene für eine Tabelle aktivieren. ADD SCHEMATRANDATA wird für alle aktuellen und zukünftigen Tabellen in einem angegebenen Schema verwendet und protokolliert automatisch eine Obermenge der verfügbaren Schlüssel, die Oracle GoldenGate für eine Zeilenidentifizierung benötigt.
Hinweis: Oracle GoldenGate 23.6 unterstützt die Aktivierung der logischen Replikation auf Schemaebene für JSON Relational Duality Views (JSON DV) und JSON Collection Tables (JCTs).
Um ADD SCHEMATRANDATA für ein Schema in der PDB einer mehrmandantenfähigen Datenbank auszuführen, müssen Sie sich zur Ausgabe bei der PDB anmelden.
ADD SCHEMATRANDATA ist für Extract gültig und führt folgende Aktionen aus:
-
Aktiviert das zusätzliche Logging von Oracle für neue Tabellen, die mit
CREATE TABLEerstellt werden. -
Aktualisiert das zusätzliche Logging für Tabellen, die von einer
ALTER TABLEbetroffen sind, um Spalten hinzuzufügen oder zu entfernen. -
Aktualisiert das zusätzliche Logging für umbenannte Tabellen.
-
Aktualisiert das zusätzliche Logging für Tabellen, bei denen eindeutige Schlüssel oder Primärschlüssel hinzugefügt oder gelöscht werden.
-
Aktiviert die automatische Erfassung für eine Tabelle. Der Befehl fügt zusätzliche Loggingdaten für PK, UI, FK, ALLKEYS auf Schemaebene hinzu.
Standardmäßig protokolliert ADD SCHEMATRANDATA die Schlüsselspalten einer Tabelle in der folgenden Prioritätsfolge:
-
Primärschlüssel
-
Wenn kein Primärschlüssel vorhanden ist, werden alle eindeutigen Schlüssel der Tabelle protokolliert, darunter deaktivierte, nicht verwendbare oder unsichtbare Schlüssel. Eindeutige Schlüssel, die ADT-Member-Spalten enthalten, werden ebenfalls protokolliert. Nur eindeutige Schlüssel für virtuelle Spalten (funktionsbasierte Indizes) werden nicht protokolliert.
-
Wenn keine der oben genannten Schlüssel vorhanden sind, werden alle skalaren Spalten der Tabelle protokolliert. (Vom System generierte Zeilen-OIDs werden immer protokolliert.)
ADD SCHEMATRANDATA unterstützt auch die bedingten oder nicht bedingten Logginganforderungen für integrierte Replicats.
Verwenden Sie ADD SCHEMATRANDATA in den folgenden Fällen:
-
Für alle Tabellen in einer Extract-Gruppe, die für das integrierte Capture konfiguriert werden soll.
ADD SCHEMATRANDATAstellt sicher, dass der richtige Schlüssel protokolliert wird, indem alle Tasten protokolliert werden. -
Für alle Quelltabellen, die in einer integrierten Replicat-Gruppe verarbeitet werden. Sie können Optionen verwenden, um das Logging der Primärschlüssel, eindeutigen Schlüssel und Fremdschlüssel zu aktivieren und die Berechnung von Abhängigkeiten unter relationalen Tabellen zu unterstützen, die über verschiedene Apply-Server verarbeitet werden.
-
Wenn die DDL-Replikation aktiv ist und DML nebenläufig mit DDL erfolgt, die neue Tabellen erstellt oder Schlüsselspalten ändert. Am besten eignet sich das für Szenarios, in denen DML sehr kurz nach der DDL-Ausgabe auf Objekte angewendet werden kann. Mit
ADD SCHEMATRANDATAwerden die jeweiligen Schlüsselwerte atomar mit jedem DDL-Vorgang im Redo-Log protokolliert. So wird das Metadatenkontinuität für die DML bei der Erfassung aus dem Log sichergestellt, trotz eventueller Verzögerungen in den Extract-Verarbeitungen.
Logginganforderungen auf Datenbankebene für UsingADD SCHEMATRANDATA
Oracle empfiehlt dringend, bei Verwendung von Oracle GoldenGate die Quelldatenbank in den Force Logging-Modus zu versetzen und das minimale zusätzliche Logging auf Datenbankebene zu aktivieren. Dadurch werden eventuelle Zeilenverkettungsinformationen für Aktualisierungsvorgänge dem Redo-Log hinzugefügt.
Weitere Überlegungen zu UsingADD SCHEMATRANDATA
-
Geben Sie vor Verwendung von
ADD SCHEMATRANDATAden BefehlDBLOGINaus. Dem Benutzer, der den Befehl ausgibt, muss die Oracle Streams-Administratorberechtigung erteilt werden.EXEC DBMS_STREAMS_AUTH.GRANT_ADMIN_PRIVILEGE('*GGADMIN*') -
ADD SCHEMATRANDATAkann anstelle des BefehlsADD TRANDATAverwendet werden, wenn der DDL-Replikation nicht aktiviert ist. Beachten Sie allerdings, dass bei einer Tabelle mit keinem Primärschlüssel, aber mehreren eindeutigen SchlüsselnADD SCHEMATRANDATAdazu führt, das die Datenbank alle eindeutigen Schlüssel protokolliert. In diesen Fällen protokolliertADD SCHEMATRANDATAdie Datenbank mit mehr Redo-Daten als mitADD TRANDATA. Um das zusätzliche Logging zu vermeiden, legen Sie nach Möglichkeit einen der eindeutigen Schlüssel als Primärschlüssel fest. -
Bei Tabellen mit einem Primärschlüssel, einem einzelnen eindeutigen Schlüssel oder ohne Schlüssel sorgt
ADD SCHEMATRANDATAzu keinem zusätzlichen Loggingaufwand im Vergleich zuADD TRANDATA. -
Wenn Sie die
SCHEMATRANDATAbei einem Schema in einer PDB hinzufügen, müssen Sie sich mit derDBLOGINbei dieser PDB anmelden. Beispiel: Verwenden Sie fürPDBEASTund SchemaHRden folgenden Befehl:ADD SCHEMATRANDATA pdbeast.hr -
Wenn Sie zusätzliche Nicht-Schlüsselspalten einer bestimmten Tabelle (oder Tabellen) zur Verwendung durch Oracle GoldenGate protokollieren müssen (wie die für
FILTER-Anweisungen undKEYCOLS-Klauseln in den ParameternTABLEundMAPerforderlichen Spalten), geben sie den BefehlADD TRANDATAfür diese Spalten aus. Für diesen Befehl ist die OptionCOLSverfügbar, mit dem Sie das zusätzliche Logging in Tabellenebene für die Spalten ausgeben können. Er kann auch zusammen mitADD SCHEMATRANDATAverwendet werden.
Syntax
ADD SCHEMATRANDATA schema
{
[ALLOWNONVALIDATEDKEYS]
[NOSCHEDULINGCOLS | ALLCOLS]}
[NOVALIDATE]
[PARTIALJSON]
[PREPARECSN {WAIT | LOCK | NOWAIT | NONE}]
schema
Das Schema, für das die zusätzlichen Schlüsselinformationen protokolliert werden sollen. Verwenden Sie keinen Platzhalter. Um ADD SCHEMATRANDATA für Schemas in mehr als einer integrierbaren Datenbank einer mehrmandantenfähigen Containerdatenbank auszugeben, melden Sie sich separat mit DBLOGIN bei jeder integrierbaren Datenbank an, und geben Sie dann ADD SCHEMATRANDATA aus. Im Root-Conatiner können Sie Schematrandata mit dem Containerpräfix ADD SCHEMATRANDATA [pdb_name].schema hinzufügen
Wenn Sie den Befehl aus cdb$root ausführen, legen Sie auch die folgende Benutzerberechtigung auf Datenbankseite fest:
ALTER USER userID SET CONTAINER_DATA = ALL CONTAINER = CURRENT;
ALLOWNONVALIDATEDKEYS
Sie bezieht Primärschlüssel NON VALIDATED- und NOT VALID-Primärschlüssel in das zusätzliche Logging. Diese Schlüssel setzen die normalen Schlüsselauswahlkriterien von Oracle GoldenGate außer Kraft. Wenn Sie den GLOBALS-Parameter ALLOWNONVALIDATEDKEYS verwenden, wird ADD SCHEMATRANDATA mit ALLOWNONVALIDATEDKEYS ausgeführt, unabhängig davon, ob diese Option angegeben ist oder nicht. Standardmäßig werden NON VALIDATED- und NOT VALID-Primärschlüssel nicht protokolliert (siehe GLOBALS-Parameter ALLOWNONVALIDATEDKEYS).
NOSCHEDULINGCOLS | ALLCOLS
Mit diesen Optionen steuern Sie das zusätzliche Logging für eine Oracle-Zieldatenbank. Sie können diese Optionen zusammen verwenden. Allerdings wird dann die zweite Option verwendet. Beispiel: Beim Befehl ADD SCHEMATRANDATA oggadm_ext ALLCOL NOSCHEDULINGCOLS wird die Option NOSCHEDULINGCOLS verwendet.
NOSCHEDULINGCOLS
Deaktiviert das Logging der Planungsspalten. Standardmäßig aktiviert ADD SCHEMATRANDATA das nicht bedingte Logging des Primärschlüssels und das bedingte zusätzliche Logging aller eindeutigen Schlüssel und Fremdschlüssel aller aktuellen und zukünftigen Tabellen im angegebenen Schema. Beim nicht bedingten Logging wird das Schreiben des Primärschlüssels in das Log erzwungen, unabhängig davon, ob der Schlüssel im aktuellen Vorgang geändert wurde. Beim bedingten Logging werden alle Spaltenwerte eines Fremdschlüssels oder eindeutigen Schlüssels protokolliert, wenn mindestens einer davon im aktuellen Vorgang geändert wurde. Der Primärschlüssel, die eindeutigen Schlüssel und die Fremdschlüssel des integrierten Replicats müssen allesamt für den Eingangsserver verfügbar sein, um Abhängigkeiten zu berechnen.
Wenn Sie auto_capture aktivieren, verwenden Sie diese Option nicht. Dadurch können Tabellen in diesem Schema automatisch erfasst werden, es sei denn, die Tabelle wird explizit für eine Replikation ausgeschlossen/deaktiviert (z.B. über TABLEEXCLUDE, DELETE TRANDATA oder ALTER TABLE DISABLE LOGICAL REPLICATION DDL).
ALLCOLS
Aktiviert das nicht bedingte zusätzliche Logging aller unterstützten Schlüssel- und Nicht-Schlüsselspalten für alle aktuellen und zukünftigen Tabellen im angegebenen Schema. Mit dieser Option aktivieren Sie das Logging der Schlüssel, die zum Berechnen von Abhängigkeiten erforderlich sind, sowie Spalten, die für Filterung, Konfliktlösung oder andere Zwecke benötigt werden. Spalten wie LOB, LONG und ADT sind dabei nicht eingeschlossen.
NOVALIDATE
Gültig für alle Datenbanken, die von ADD SCHEMATRANDATA unterstützt werden.
Unterdrückt zusätzliche Informationen zur Tabelle, die von ADD SCHEMATRANDATA verarbeitet wird. Standardmäßig ist diese Option aktiviert. Die Verarbeitung zusätzlicher Informationen führt zu einer Verzögerung bei der Befehlsantwort. Sie können die Antwortzeit mit dieser Option also erhöhen.
PARTIALJSON
Gültig für Oracle.
Ruft JSON-Teilaktualisierungen auf Schemaebene ab. Wenn diese Option aktiviert ist, enthält das Redo JSON-Teildatensätze.
Siehe auch Parameter TRANLOGOPTIONS FETCHPARTIALJSON.
PREPARECSN {WAIT | LOCK | NOWAIT | NONE}
Gültig für Oracle für DML und DDL.
Bereitet die Tabellen in der Quelle automatisch vor, sodass die Exportdumpdatei von Oracle Data Pump Instanziierungs-CSNs enthält. Replicat verwendet die tabellenbezogene Instanziierungs-CSN, die (beim Import) von Oracle Data Pump festgelegt wird, um Traildatensätze herauszufiltern. Im Ziel füllt der Datenpumpe-Import die Systemtabellen und -Views mit Instanziierungs-SCNs, um die Instanziierungsfilterung in Tabellenebene zu ermöglichen. Verwenden Sie dazu den Parameter DBOPTIONS ENABLE_INSTANTIATION_FILTERING.
WAIT
Warten Sie auf In-Flight-Transaktionen, und bereiten Sie die Tabelleninstanziierung vor.
LOCK
Sperren Sie die Tabelle (als Vorbereitung auf die Tabelleninstanziierung).
NOWAIT
Standardverhalten. Dabei wird die Instanziierung sofort vorbereitet.
NONE
Die Instanziierung wird nicht vorbereitet.
Beispiel
Mit dem folgenden Befehl aktivieren Sie das ergänzende Logging für das Schema hr.
ADD SCHEMATRANDATA hr
Im folgenden Beispiel werden alle unterstützten Schlüssel- und Nicht-Schlüsselspalten für alle aktuellen und zukünftigen Tabellen im Schema hr protokolliert.
ADD SCHEMATRANDATA hr ALLCOLS
Im folgenden Beispiel wird die Verarbeitung zusätzlicher Tabelleninformationen unterdrückt.
ADD SCHEMATRANDATA hr NOVALIDATE