DDL-OPTIONEN

Gültig für

Extract und Replicat

Beschreibung

Verwenden Sie den Parameter DDLOPTIONS, um andere Aspekte der DDL-Verarbeitung als Filterung und Zeichensetzung zu konfigurieren. Sie können mehrere DDLOPTIONS-Anweisungen verwenden. Es wird jedoch empfohlen, eine Anweisung zu verwenden. Wenn Sie mehrere DDLOPTIONS-Anweisungen verwenden, machen Sie jede davon eindeutig, sodass die eine die andere nicht außer Kraft setzt. Mehrere DDLOPTIONS-Anweisungen werden in der Reihenfolge ausgeführt, die in der Parameterdatei aufgeführt ist.

Standard

Siehe Argumentbeschreibungen

Syntax

DDLOPTIONS
[, DEFAULTUSERPASSWORD <password>] [<algorithm> [ENCRYPTKEY DEFAULT | ENCRYPTKEY] <key_name>]
[, CAPTUREGLOBALTEMPTABLE ]
[, DEFAULTUSERPASSWORDALIAS <alias> [DOMAIN <domain>] ]
[, EXCLUDETAG {<tag> | + | NULL}]
[, IGNOREMAPPING]
[, INCLUDETAG {<tag> | +}][, MAPDERIVED | NOMAPDERIVED]
[, MAPSCHEMAS]
[, MAPSESSIONSCHEMA <source_schema> TARGET <target_schema>]
[, NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT][, NOAPPLYGLOBALTEMPTABLE]
[, NOTAG]
[, PASSWORD <algorithm> ENCRYPTKEY {<key_name> | DEFAULT}]
[, REMOVECOMMENTS {BEFORE | AFTER}]
[, REPLICATEPASSWORD | NOREPLICATEPASSWORD]
[, REPORT | NOREPORT]
[, UPDATEMETADATA]
[, USEPASSWORDVERIFIERLEVEL {10|11}]
[, _USEOWNERFORSESSION]
[, WARNONLARGEDDL]

DEFAULTUSERPASSWORD *password* [*algorithm* ENCRYPTKEY {*key_name* | DEFAULT}]

Gültig für Replicat. (Nur Oracle)

Kann anstelle der Option DEFAULTUSERPASSWORDALIAS verwendet werden, wenn kein Oracle GoldenGate-Zugangsdatenspeicher verwendet wird. Gibt ein anderes Kennwort für eine replizierte {CREATE | ALTER} USER <name> IDENTIFIED BY <password>-Anweisung an als das in der Quellanweisung verwendete. Replicat ersetzt den Platzhalter, den Extract in den Trail schreibt, durch das angegebene Kennwort. Wenn Sie DEFAULTUSERPASSWORD verwenden, verwenden Sie die Option NOREPLICATEPASSWORD von DDLOPTIONS für Extract.

DEFAULTUSERPASSWORD <password> ohne Optionen gibt ein Klartextpasswort an. Beachten Sie gegebenenfalls die Groß-/Kleinschreibung des Kennworts.

Hinweis: Die Replikation von CREATE | ALTER PROFILE verläuft nicht erfolgreich, da die Profil-/Kennwortverifizierungsfunktion im SYS-Schema vorhanden sein muss. Um diese DDLs erfolgreich zu replizieren, muss die Kennwortverifizierungsfunktion manuell auf beiden Quell-/Zielen erstellt werden, da DDL in das SYS-Schema ausgeschlossen ist.

Verwenden Sie die folgenden Optionen, wenn das Kennwort mit dem Befehl ENCRYPT PASSWORD verschlüsselt wurde:

algorithm

Gibt den Verschlüsselungsalgorithmus an, der zum Verschlüsseln des Kennworts mit dem Befehl ENCRYPT PASSWORD verwendet wurde: AES128 oder AES192, AES256.

ENCRYPTKEY key_name

Gibt den logischen Namen eines vom Benutzer erstellten Verschlüsselungsschlüssels in der Lookup-Datei ENCKEYS an. Verwenden Sie diese Option, wenn ENCRYPT PASSWORD mit der Option KEYNAME <key_name> verwendet wurde, und geben Sie denselben Schlüsselnamen an.

ENCRYPTKEY DEFAULT

Weist Oracle GoldenGate an, einen Zufallsschlüssel zu verwenden. Verwenden Sie diese Einstellung, wenn ENCRYPT PASSWORD mit der Option KEYNAME DEFAULT angegeben ist.

CAPTUREGLOBALTEMPTABLE

Gültig für Oracle

Ermöglicht, dass GTT-(Global Temporary Tables-)DDLs für Extract sichtbar sind, damit sie repliziert werden können. Standardmäßig sind GTT-DDLs nicht für Extract sichtbar. Mit CAPTUREGLOBALTEMPTABLE können Sie festlegen, dass "Extract" GTT-DDLs enthält, die dann von der DDL-Anweisung gefiltert und, sofern Sie übergeben werden, in den Trail geschrieben werden können.

Die GTT-DDLs, die im Trail vorhanden sind, werden gefiltert und vom Replicat ausgeführt, wenn sie die Filterkriterien erfüllen.

Für die Trigger-Version von Extract wird diese Option auf "false" gesetzt, unabhängig davon, ob die Tabelle GTT ist oder nicht.

DEFAULTUSERPASSWORDALIAS *alias* [DOMAIN *domain*]

Gültig für Replicat. (Nur Oracle)

Kann anstelle der Option DEFAULTUSERPASSWORD verwendet werden, wenn ein Oracle GoldenGate-Zugangsdatenspeicher verwendet wird. Gibt den Alias eines Zugangsdaten an, dessen Kennwort den Alias in der IDENTIFIED BY-Klausel einer replizierten CREATE USER- oder ALTER USER-Anweisung ersetzt. Der Alias wird in das verschlüsselte Kennwort im Oracle GoldenGate-Zugangsdatenspeicher aufgelöst. Replicat ersetzt den Platzhalter, den Extract in den Trail schreibt, durch das aufgelöste Kennwort, bevor DDL auf das Ziel angewendet wird.

Wenn Sie DEFAULTUSERPASSWORDALIAS verwenden, verwenden Sie die Option NOREPLICATEPASSWORD von DDLOPTIONS für Extract.

alias

Gibt den Alias der Zugangsdaten an, deren Kennwort für das Ersetzungskennwort verwendet wird. Diese Zugangsdaten müssen im Oracle GoldenGate-Zugangsdatenspeicher vorhanden sein. Wenn Sie nicht sicher sind, welcher Alias verwendet werden soll, können Sie den Inhalt des Zugangsdatenspeichers prüfen, indem Sie den Befehl INFO CREDENTIALSTORE eingeben.

DOMAINDomäne

Gibt die Domain an, die dem angegebenen Benutzer im Zugangsdatenspeicher zugewiesen ist.

EXCLUDETAG {*tag* | + | NULL}]

Gültig für Extract. (Nur Oracle)

Hinweis: Ab Oracle GoldenGate 26ai wurde die Syntax für die Verwendung der Optionen EXCLUDETAG und INCLUDETAG verbessert und sollte anstelle der Optionen GETREPLICATES, IGNOREREPLICATES, GETAPPLOPS und IGNOREAPPLOPS verwendet werden, die entfernt wurden.

Mit EXCLUDETAG werden Änderungen ausgeschlossen, die zuvor von Replicat mit der Option DBOPTIONS SET TAG oder in der Oracle AI Database-Session mit der Prozedur dbms_xstream.set_tag getaggt wurden.

Verwenden Sie EXCLUDETAG <tag>, um den Extract-Prozess anzuweisen, die einzelnen Datensätze zu ignorieren, die mit dem angegebenen Redo-Tag getaggt sind.

Mit EXCLUDETAG NULL können Sie alle DDL-Vorgänge ausschließen, die nicht getaggt sind. Das Gegenteil von EXCLUDETAG +.

Verwenden Sie EXCLUDETAG +, um den Extract-Prozess anzuweisen, die einzelnen Datensätze zu ignorieren, die mit einem Redo-Tag getaggt sind.

Hinweis: Wenn Sie sowohl die Parameter EXCLUDETAG als auch INCLUDETAG mit dem Befehl DDLOPTIONS angeben, sollte EXCLUDETAG an erster Stelle stehen.

Standardmäßig weist die Option DDLOPTIONS EXCLUDETAG + Extract an, getaggte DDL-Vorgänge zu filtern, wodurch Oracle Data Pump-DDLs, die mit 00 getaggt sind, aus dem Capture-Prozess ausgeschlossen werden. Um diese DDLs zu erfassen, konfigurieren Sie DDLOPTIONS INCLUDETAG 00.

Hinweis: Bei bidirektionalen Konfigurationen kann die Aktivierung der Tag-Inklusion die Erfassung anderer getaggter DDLs ermöglichen, wodurch möglicherweise Replikationsschleifen oder doppelte DDL-Ausführungen eingeführt werden.

Beispiel

Im Folgenden finden Sie Beispiele für die Verwendung von Tagbezeichnern mit EXCLUDETAG.

So schließen Sie alle getaggten Änderungen aus:

DDLOPTIONS EXCLUDETAG +

So schließen Sie bestimmte getaggte Änderungen aus:

DDLOPTIONS EXCLUDETAG 00
DDLOPTIONS EXCLUDETAG 0952

So verwenden Sie mehrere Ausschlusstags in einer einzelnen DDLOPTIONS-Anweisung:

DDLOPTIONS EXCLUDETAG 00 EXCLUDETAG 97ab

INCLUDETAG {tag | +}

Gültig für Extract. (Nur Oracle)

Verwenden Sie INCLUDETAG <tag>, um bestimmte getaggte DDL-Vorgänge in die Traildateien aufzunehmen. Der Tagwert kann bis zu 2000 Hexadezimalziffern (0-9 A-F) betragen.

Hinweis: Wenn Sie sowohl die Parameter EXCLUDETAG als auch INCLUDETAG mit dem Befehl DDLOPTIONS angeben, sollte EXCLUDETAG an erster Stelle stehen.

Beispiel:

So nehmen Sie alle getaggten Änderungen auf:

DDLOPTIONS INCLUDETAG +

So nehmen Sie bestimmte getaggte Änderungen auf:

DDLOPTIONS INCLUDETAG 00

Richtlinien zur Verwendung von EXCLUDETAG- und INCLUDETAG-Parametern

Beachten Sie bei der Verwendung der Parameter EXCLUDETAG und INCLUDETAG mit den Befehlen TRANLOGOPTIONS und DDLOPTIONS Folgendes:

IGNOREMAPPING

Gültig für Replicat. Deaktiviert die Auswertung der Namenszuordnung, die bestimmt, ob DDL den Geltungsbereich MAPPED oder UNMAPPED aufweist. Diese Option verbessert die Performance in ähnlichen DDL-Replikationskonfigurationen, bei denen Quell- und Zielschemanamen und Objektnamen übereinstimmen und Mappingfunktionen daher nicht erforderlich sind. Wenn IGNOREMAPPING aktiviert ist, kann der Geltungsbereich MAPPED oder UNMAPPED nicht bestimmt werden. Daher werden alle DDL-Anweisungen als Geltungsbereich OTHER behandelt. Verwenden Sie diesen Parameter nicht, wenn Quellschemas und Objektnamen verschiedenen Schema- und Objektnamen auf dem Ziel zugeordnet sind.

MAPDERIVED | NOMAPDERIVED

Gültig für Replicat (Oracle). Steuert, wie abgeleitete Objektnamen zugeordnet werden.

MAPDERIVED

Wenn eine MAP-Anweisung für das abgeleitete Objekt vorhanden ist, wird der Name dem Namen zugeordnet, der in dieser TARGET-Klausel angegeben ist. Andernfalls wird der Name dem Namen zugeordnet, der in der TARGET-Klausel der MAP-Anweisung angegeben ist, die das Basisobjekt enthält. MAPDERIVED ist der Standardwert.

NOMAPDERIVED

Verhindert die Namenszuordnung. NOMAPDERIVED setzt explizite MAP-Anweisungen außer Kraft, die den Namen des abgeleiteten Objekts enthalten.

Weitere Informationen dazu, wie abgeleitete Objekte während der DDL-Replikation verarbeitet werden, finden Sie unter Abgeleitete Objektnamen von Oracle GoldenGate verarbeiten.

MAPSCHEMAS

Gültig für Replicat (Oracle und Teradata). Nur verwenden, wenn MAPSESSIONSCHEMA verwendet wird.

Diese Zuordnung erfolgt nach der Zuordnung, die in der MAP-Anweisung angegeben ist.

Beispiel: Angenommen, die folgende DDL-Anweisung wird in einer Oracle AI Database-Quelle abgesetzt:

create table a.t as select from b.t;

Angenommen, die MAP-Anweisung auf dem Ziel lautet wie folgt:

MAP a.*, TARGET c.*;
DDLOPTIONS MAPSESSIONSCHEMA b, TARGET b1, MAPSCHEMAS

Als Ergebnis dieser Zuordnung setzt Replicat die folgende DDL-Anweisung auf dem Ziel ab:

create table c.t as select from b1.t;

Ohne MAPSCHEMAS würde das abgeleitete Objekt dem Schema c (wie in der TARGET-Klausel angegeben) zugeordnet, da nur MAPSESSIONSCHEMA nicht qualifizierte Objekte zuordnet.

MAPSESSIONSCHEMA *source_schema* TARGET *target_schema*

Gültig für Replicat (nur Oracle). Aktiviert ein Quellsessionschema, das einem anderen Sessionschema auf dem Ziel zugeordnet werden soll (in)

Platzhalter werden nicht unterstützt. Sie können mehrere MAPSESSIONSCHEMA-Parameter verwenden, um verschiedene Schemas zuzuordnen.

MAPSESSIONSCHEMA setzt jede Zuordnung von Schemanamen außer Kraft, die auf Master- oder abgeleiteten Objektnamen basiert

Siehe das Beispiel am Ende dieses Themas zur Verwendung.

Siehe auch MAPSCHEMAS.

NLSLENGTHSEMANTICS CHAR | BYTE | DEFAULT]

Gültig für Replicat (nur Oracle).

Ermöglicht Replicat, die Oracle AI Database-Sessionparametereinstellung NLS_LENGTH_SEMANTICS außer Kraft zu setzen, die Teil des Replikationstraildateidatensatzes DDL ist. Beispiel: Wenn DDL in einer Datenbanksession mit dem Parameterwert NLS_LENGTH_SEMANTICS als BYTE ausgeführt wird, setzt Replicat den Datenbanksessionparameter NLS_LENGTH_SEMANTICS standardmäßig auf BYTE, bevor Replicat DDL anwendet. Um dies außer Kraft zu setzen, können Sie den Parameter NLSLENGTHSEMANTICS auf CHAR setzen. Bevor DDL angewendet wird, wird der Sessionparameter NLS_LENGTH_SEMANTICS auf CHAR gesetzt.

NOAPPLYGLOBALTEMPTABLE

Verhindert, dass Replicat globale temporäre Tabellen (GTT) anwendet. Wenn diese Option nicht angegeben ist, wendet Replicat DDLs immer auf GTT (Global Temporary Tables) aus dem Trail an.

NOTAG

Gültig für Replicat

Verhindert das Tagging von DDL, das über ein Redo-Tag in Replicat angewendet wird (entweder das Standardtag "00" oder ein Tag mit dem Parameter DBOPTIONS mit der Option SETTAG).

Der vom Replicat verwendete Standardtagwert ist 00 und kann mit dem Parameter DBOPTIONS SETTAG manuell geändert werden. Siehe DBOPTIONS.

PASSWORD *algorithm* ENCRYPTKEY {*key_name* | DEFAULT}

Gültig für Extract (nur Oracle)

Weist Extract an, alle Kennwörter in Quelle DDL zu verschlüsseln, bevor DDL in den Trail geschrieben wird.

<algorithm>

Gibt den Verschlüsselungsalgorithmus an, der zur Verschlüsselung des Kennworts verwendet werden soll. Gültige Werte sind AES128, AES192 oder AES256.

ENCRYPTKEY *key_name*

Gibt den logischen Namen eines vom Benutzer erstellten Verschlüsselungsschlüssels in einer ENCKEYS-Lookup-Dateian.

ENCRYPTKEY DEFAULT

Weist Oracle GoldenGate an, einen Zufallsschlüssel zu verwenden.

REMOVECOMMENTS {BEFORE | AFTER}

(Optional) Gültig für Extract und Replicat (nur Oracle). Steuert, dass Kommentare aus dem DDL-Vorgang entfernt werden. Standardmäßig werden Kommentare nicht entfernt, sodass sie zum Ersetzen von Zeichenfolgen mit dem Parameter DDLSUBST verwendet werden können. Weitere Informationen dazu finden Sie in DDLSUBST.

REMOVECOMMENTS BEFORE

Entfernt Kommentare, bevor der Vorgang DDL von Extract oder Replicat verarbeitet wird. Sie sind nicht für die Ersetzung von Zeichenfolgen verfügbar.

REMOVECOMMENTS AFTER

Entfernt Kommentare, nachdem sie zum Ersetzen von Zeichenfolgen verwendet wurden. Dies ist das Standardverhalten, wenn REMOVECOMMENTS nicht angegeben ist.

REPLICATEPASSWORD | NOREPLICATEPASSWORD

Gültig für Extract (nur Oracle). Gilt für das Kennwort in einem {CREATE | ALTER} USER <user> IDENTIFIED BY <password>-Befehl.

Wenn Sie NOREPLICATEPASSWORD verwenden, geben Sie ein Kennwort für die DDL-Zielanweisung an, indem Sie eine DDLOPTIONS-Anweisung mit der Option DEFAULTUSERPASSWORD oder DEFAULTUSERPASSWORDALIAS in der Replicat-Parameterdatei verwenden.

REPORT | NOREPORT

Gültig für Extract und Replicat (Oracle und Teradata). Steuert, ob erweiterte DDL-Verarbeitungsinformationen in die Berichtsdatei geschrieben werden. Der Standardwert von NOREPORT meldet grundlegende DDL-Statistiken. REPORT fügt die verwendeten Parameter und eine Schritt-für-Schritt-Historie der verarbeiteten Vorgänge hinzu.

UPDATEMETADATA

Gültig für Replicat (nur Oracle). Wird in einer bidirektionalen Active/Active-Konfiguration verwendet. Dieser Parameter benachrichtigt Replicat auf dem System, von dem DDL stammt, dass diese DDL an das andere System propagiert wurde, und dass Replicat jetzt den Objektmetadatencache entsprechend den neuen Metadaten aktualisieren muss. Dadurch wird der Metadatencache von Replicat mit den aktuellen Metadaten der lokalen Datenbank synchronisiert.

USEPASSWORDVERIFIERLEVEL {10|11}

Nur gültig in einer Oracle-zu-Oracle-Konfiguration. Prüft, ob die Kennwortverifizierung, die in einer DDL CREATE USER-Anweisung gesendet wird, geändert werden muss. Der Grund für diese Prüfung ist, dass Oracle je nach Datenbankversion unterschiedliche Passwortverifizierungen hat:

Die SHA-1-, SHA-2- und HTTP-Verifizierer werden in user$.spare4 im Format 'S:<SHA-1-verifier>;H:<http-verifier>;T:<SHA-2-verifier>' erfasst. Integrated Extract gibt die folgende DDL in 12c zurück, um DDL-Anweisungen für den Benutzer zu erstellen:

Wenn Replicat für Oracle 12c ausgeführt wird, werden diese CREATE USER-Formulare auf RDBMS-Ebene verarbeitet. Wenn Replicat jedoch für Oracle 10g oder 11 ausgeführt wird, werden diese Formulare nicht vom RDBMS verarbeitet. Oracle 10g akzeptiert nur die schwache Verifizierung, während Oracle 11g nur die S:SHA-1 und schwachen Verifizierungen akzeptiert.

Um zuzulassen, dass die für einen Extract, der mit Oracle 12c verbunden ist, generierte CREATE USER DDL mit einem Replicat arbeitet, das mit Oracle 10g oder 11g verbunden ist, kann dieser Parameter verwendet werden, um die unerwünschten Verifier wie folgt herauszufiltern:

WARNONLARGEDDL

Diese Option ist für Extract gültig.

Damit können Sie eine Warnmeldung für Extract ohne Abbruch generieren, wenn ein DDL die BUFFER-Größe überschreitet.

Beispiele

Beispiel 1

Im Folgenden wird gezeigt, wie MAPSESSIONSCHEMA funktioniert, um die Zuordnung eines Quellsessionschemas zu einem anderen Schema im Ziel zuzulassen.

Angenommen, die folgenden DDL Capture- und Mappingkonfigurationen in Extract und Replicat:

Extrahieren:

DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;
DDL INCLUDE OBJNAME SRC.* INCLUDE OBJNAME SRC1.*
TABLE SRC.*;
TABLE SRC1.*;

Replicat:

DDLOPTIONS MAPSESSIONSCHEMA SRC TARGET DST
DDLOPTIONS MAPSESSIONSCHEMA SRC1 TARGET DST1
MAP SRC.*, TARGET DST.*;
MAP SRC1.*, TARGET DST1.*;
DDL INCLUDE OBJNAME DST.* INCLUDE OBJNAME DST1.*

Angenommen, die folgenden DDL-Anweisungen werden vom angemeldeten Benutzer in der Quelle abgesetzt:

ALTER SESSION SET CURRENT_SCHEMA=SRC;
CREATE TABLE tab (X NUMBER);
CREATE TABLE SRC1.tab (X NUMBER) AS SELECT * FROM tab;

Replicat führt die DDL wie folgt aus (Erklärungen vor jedem Codesegment):

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to DST, per MAPSESSIONSCHEMA, so that AS SELECT succeeds.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the DST1.TAB table AS SELECT * FROM the first table (DST.TAB).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER

Ohne MAPSESSIONSCHEMA würde SELECT * FROM TAB versuchen, aus einer nicht vorhandenen SRC.TAB-Tabelle auszuwählen, und war nicht erfolgreich. Standardmäßig wird das Quellschema auf nicht qualifizierte Objekte in einer DDL-Zielanweisung angewendet. Die DDL-Anweisung würde in diesem Fall wie folgt aussehen und fehlschlagen:

-- Set session to DST, because SRC.* is mapped to DST.* in MAP statement.
ALTER SESION SET CURRENT_SCHEMA=DST;
-- Create the first TAB table in the DST schema, using the DST session schema.
CREATE TABLE DST.tab (X NUMBER);
-- Restore Replicat schema.
ALTER SESSION SET CURRENT_SCHEMA=REPUSER
-- Set session schema to SRC, because TAB in the AS SELECT is unqualified-- and SRC is the source session schema.
ALTER SESION SET CURRENT_SCHEMA=SRC;
-- Create DST1.TAB AS SELECT * from SRC.TAB (SRC=current session schema).
CREATE TABLE DST1.tab (X NUMBER) AS SELECT * FROM tab;
-- SRC.TAB does not exist.
-- Abend with an error unless the error is handled by a DDLERROR statement.

Beispiel 2

Im Folgenden wird gezeigt, wie Sie mit DEFAULTUSERPASSWORDALIAS ein anderes Kennwort für eine replizierte {CREATE | ALTER} USER <name> IDENTIFIED BY <password>-Anweisung angeben, als das in der Quellanweisung verwendete. In diesem Beispiel befindet sich der Alias ddlalias in der Domain target im Zugangsdatenspeicher.

DDLOPTIONS DEFAULTUSERPASSWORDALIAS ddlalias DOMAIN target