DDL
Gültig für
Extrakt und Replicat
Hinweis: Die DDL-Replikation wird nur zwischen Oracle- und Oracle-Datenbanken und zwischen MySQL- und MySQL-Datenbanken unterstützt.
Beschreibung
Verwenden Sie den Parameter DDL, um:
-
DDL-Unterstützung aktivieren -
DDL-Vorgänge filtern -
Verarbeitungsaktion basierend auf einem
DDL-Datensatz konfigurieren
Wenn der Parameter DDL ohne Optionen verwendet wird, führt er keine Filterung aus, und alle DDL-Vorgänge werden wie folgt propagiert:
-
Als Extract-Parameter erfasst er alle unterstützten
DDL-Vorgänge, die für alle unterstützten Datenbankobjekte generiert werden, und sendet sie an den Trail. -
Als Replicat-Parameter repliziert er alle
DDL-Vorgänge aus dem Oracle GoldenGate-Trail und wendet sie auf das Ziel an. Dies entspricht dem Standardverhalten ohne diesen Parameter.
Wenn er mit Optionen verwendet wird, fungiert der Parameter DDL als Filteragent, um DDL-Vorgänge basierend auf:
-
Geltungsbereich
-
Objekttyp
-
Vorgangstyp
-
Objektname
-
Zeichenfolgen in der
DDL-Befehlssyntax, Kommentaren oder beiden
In einer Parameterdatei kann nur ein DDL-Parameter verwendet werden. Sie können jedoch mehrere Ein- und Ausschlussoptionen kombinieren, um die DDL auf die erforderliche Ebene zu filtern.
-
Die Filteroptionen des Parameters
DDLsind für einen primären Extract gültig, der aus der Transaktionsquelle erfasst, jedoch nicht für einen Data Pump-Extract. -
Wenn sie kombiniert werden, werden mehrere Filteroptionsspezifikationen logisch als
AND-Anweisungen verknüpft. -
Alle Filterkriterien, die mit mehreren Optionen angegeben sind, müssen erfüllt sein, damit eine
DDL-Anweisung repliziert werden kann. -
Wenn Sie komplexe Filterkriterien in einer
DDL-Parameteranweisung verwenden, sollten Sie die Konfiguration in einer Testumgebung testen, bevor Sie sie in der Produktion verwenden. -
Weitere Informationen finden Sie unter Beispiel 1, "Beispiel".
Hinweis: Verwenden Sie den Parameter DDL nicht für eine Extract-Data Pump. Diese Prozesstypen lassen die Zuordnung oder Konvertierung von DDL nicht zu und propagieren DDL-Datensätze automatisch im Passthrough-Modus. DDL, die für eine Quelltabelle (z.B. ALTER TABLE TableA...) ausgeführt wird, wird von Replicat mit demselben Tabellennamen (ALTER TABLE TableA) angewendet. Sie kann nicht als ALTER TABLE TableB zugeordnet werden.
Weitere Informationen zur Verwendung der Oracle GoldenGate-Unterstützung DDL finden Sie unter Oracle: DDL Replication und MySQL: DDL Replication in der Dokumentation zu Oracle GoldenGate-Microservices.
Syntax
DDL [
{AUTOSCHEMA}
{INCLUDE | EXCLUDE}
[, ALLOWEMPTYOBJECT]
[, ALLOWEMPTYOWNER]
[, MAPPED | UNMAPPED | OTHER | ALL]
[, OPTYPE <type>]
[, OBJTYPE '<type>']
[, OBJNAME <name>]
[, INSTR '<string>']
[, INSTRWORDS '<word_list>']
[, INSTRCOMMENTS '<comment_string>']
[, INSTRCOMMENTSWORDS '<word_list>']
[, SOURCECATALOG <catalog> | ALLCATALOGS]
[, STAYMETADATA]
[, EVENTACTIONS (<action>)]
]
[...]
AUTOSCHEMA
Gültig für Replicat in MySQL für Oracle, Oracle für MySQL und MySQL für die Datenreplikation MySQL.
Die Parameteroption DDL AUTOSCHEMA wird verwendet, um die Funktionalität für die automatische Schemaerstellung zu aktivieren. Standardmäßig ist diese Option deaktiviert.
Syntax
DDL AUTOSCHEMA
Nur zugeordnete DDL-Vorgänge sind für die automatische Schemaentwicklung relevant. Daher sollten die als Teil der OBJNAME-Klausel in den Ein-/Ausschlusskriterien angegebenen Objektnamen den Zieltabellennamen (und nicht den Quelltabellennamen) entsprechen.
Wenn Sie OBJNAME mit MAPPED in einer Replicat-Parameterdatei verwenden, muss sich der Wert für OBJNAME auf den Namen beziehen, der mit der TARGET-Klausel der MAP-Anweisung angegeben ist.
Weitere Informationen finden Sie unter Automatische Schemaentwicklung verwenden.
INCLUDE | EXCLUDE
DDL Filteroptionen
Die folgenden Syntaxoptionen ermöglichen das Filtern und Ausführen auf der DDL, die von Oracle GoldenGate repliziert wird. Diese Optionen gelten für die Klauseln INCLUDE und EXCLUDE des Parameters DDL und andere Parameter, die die DDL-Replikation unterstützen.
Verwenden Sie INCLUDE oder EXCLUDE, um den Anfang einer Einschluss- oder Ausschlussklausel zu identifizieren.
-
Eine Einschlussklausel enthält Filterkriterien, die den
DDLkennzeichnen, auf den sich dieser Parameter auswirkt. -
Eine Ausschlussklausel enthält Filterkriterien, die bestimmte
DDLvon diesem Parameter ausschließen.
Die Einschluss- oder Ausschlussklausel muss aus dem Schlüsselwort INCLUDE oder EXCLUDE gefolgt von einer gültigen Kombination der anderen Filteroptionen des Parameters DDL bestehen.
Wenn Sie EXCLUDE verwenden, müssen Sie eine entsprechende INCLUDE-Klausel erstellen. Beispiel: Folgendes ist ungültig:
DDL EXCLUDE OBJNAME "hr".*
Sie können jedoch eine der folgenden Vorgehensweisen verwenden:
DDL INCLUDE ALL, EXCLUDE OBJNAME "hr"."*"
DDL INCLUDE OBJNAME fin.* EXCLUDE OBJNAME "fin.ss"
Eine EXCLUDE hat Vorrang vor jeder INCLUDEs, die dieselben Kriterien enthalten. Sie können mehrere Ein- und Ausschlussklauseln verwenden.
Nehmen Sie keine von Oracle GoldenGate installierten DDL-Objekte in einen DDL-Parameter, einen TABLE-Parameter, einen MAP-Parameter oder einen TABLEEXCLUDE- oder MAPEXCLUDE-Parameter auf. Stellen Sie sicher, dass Platzhalterangaben in diesen Parametern keine von Oracle GoldenGate installierten DDL-Objekte enthalten. Diese Objekte dürfen nicht Teil der Oracle GoldenGate-Konfiguration sein, aber der Extract-Prozess muss sich der Vorgänge an ihnen bewusst sein. Aus diesem Grund dürfen Sie sie nicht explizit mit einer Parameteranweisung EXCLUDE, TABLEEXCLUDE oder MAPEXCLUDE aus der Konfiguration ausschließen.
ALLOWEMPTYOBJECT
Verwenden Sie ALLOWEMPTYOBJECT, um zuzulassen, dass eine OBJNAME-Spezifikation DDL verarbeitet, die keinen Objektnamen enthält. Beispiel:
DDL INCLUDE OBJNAME sch.* ALLOWEMPTYOBJECT
ALLOWEMPTYOWNER
Verwenden Sie ALLOWEMPTYOWNER, um zuzulassen, dass eine OBJNAME-Spezifikation DDL verarbeitet, die keinen Eigentümernamen enthält. Beispiel:
DDL INCLUDE OBJNAME pdb.sch.* ALLOWEMPTYOWNER
EVENTACTIONS (action)
Führt dazu, dass der Extract- oder Replicat-Prozess eine definierte Aktion ausführt, die auf einem DDL-Datensatz im Transaktionslog oder -trail basiert, der als Ereignisdatensatz bezeichnet wird. Das Ereignis DDL wird ausgelöst, wenn der Datensatz DDL berechtigt ist, von Extract oder einer Data Pump in den Trail geschrieben oder von Replicat ausgeführt zu werden, wie durch die anderen Filteroptionen des Parameters DDL bestimmt. Mit diesem System können Sie die Verarbeitung basierend auf Datenbankereignissen anpassen.
Informationen zu <action> finden Sie unter EVENTACTIONS unter den Parametern MAP und TABLE.
Richtlinien für die Verwendung von EVENTACTIONS in DDL-Datensätzen:
-
CHECKPOINTBEFORE: Da jederDDL-Datensatz autonom ist, ist derDDL-Datensatz garantiert der Start einer Transaktion. Daher ist dieCHECKPOINT BEFORE-Ereignisaktion für einenDDL-Datensatz impliziert. -
IGNORE: Diese Option ist fürDDL-Datensätze nicht gültig. DaDDL-Vorgänge autonom sind, entspricht das Ignorieren eines Datensatzes dem Ignorieren der gesamten Transaktion.
EVENTACTIONS unterstützt die folgenden DDL-Objekte nicht, da es sich um abgeleitete Objekte handelt:
-
Indizes
-
Trigger
-
Synonyme
-
RENAMEin einer Tabelle undALTER TABLE RENAME
MAPPED | UNMAPPED | OTHER | ALL
Verwenden Sie MAPPED, UNMAPPED, OTHER und ALL, um INCLUDE oder EXCLUDE basierend auf dem Geltungsbereich des DDL-Vorgangs anzuwenden.
-
MAPPEDwendetINCLUDEoderEXCLUDEaufDDL-Vorgänge an, die den GeltungsbereichMAPPEDaufweisen. DieMAPPED-Filterung wird vor der Filterung ausgeführt, die mit anderen Parameteroptionen des TypsDDLangegeben wird. -
UNMAPPEDwendetINCLUDEoderEXCLUDEaufDDL-Vorgänge an, die den GeltungsbereichUNMAPPEDaufweisen. -
OTHERwendetINCLUDEoderEXCLUDEaufDDL-Vorgänge an, die den GeltungsbereichOTHERaufweisen. -
ALLwendetINCLUDEoderEXCLUDEaufDDL-Vorgänge aller Geltungsbereiche zu.
DDL EXCLUDE ALL ist eine spezielle Verarbeitungsoption, mit der aktuelle Objektmetadaten für Oracle GoldenGate verwaltet werden, während die Replikation der DDL-Vorgänge selbst blockiert wird. Sie können DDL EXCLUDE ALL verwenden, wenn Sie eine andere Methode als Oracle GoldenGate verwenden, um DDL auf das Ziel anzuwenden. Oracle GoldenGate soll jedoch Datenänderungen in den Zielobjekten replizieren. Sie stellt Oracle GoldenGate die aktuellen Metadaten bereit, wenn sich Objekte ändern. Dadurch wird verhindert, dass die Oracle GoldenGate-Prozesse gestoppt und gestartet werden müssen. Für DDL EXCLUDE ALL gelten folgende Sonderbedingungen:
-
Für
DDL EXCLUDE ALList keine Verwendung einerINCLUDE-Klausel erforderlich. -
Wenn Sie
DDL EXCLUDE ALLverwenden, können Sie den ParameterWILDCARDRESOLVEaufIMMEDIATEsetzen, um bei Bedarf eine sofortige Auflösung vonDMLzu ermöglichen.
OBJNAME name
Verwenden Sie OBJNAME, um INCLUDE oder EXCLUDE auf den vollqualifizierten Namen eines Objekts anzuwenden. Informationen zum korrekten Angeben von zweiteiligen und dreiteiligen Objektnamen und Platzhaltern finden Sie unter Verwenden von Platzhaltern in Befehlsargumenten.
Schließen Sie Objektnamen mit Groß-/Kleinschreibung in doppelte Anführungszeichen ein.
Beispiel ohne Beachtung der Groß-/Kleinschreibung:
DDL INCLUDE OBJNAME accounts.*
Beispiel für Groß-/Kleinschreibung:
DDL INCLUDE OBJNAME accounts."cust"
Verwenden Sie OBJNAME nicht für das Oracle-Objekt USER, da OBJNAME <owner.object> oder <container.owner.object> erwartet, während USER nur ein Schema aufweist.
Wenn Sie OBJNAME mit MAPPED in einer Replicat-Parameterdatei verwenden, muss sich der Wert für OBJNAME auf den Namen beziehen, der mit der TARGET-Klausel der MAP-Anweisung angegeben ist. Beispiel: Bei der folgenden MAP-Anweisung lautet der korrekte Wert OBJNAME fin2.*.
MAP fin.exp_*, TARGET fin2.*;
Im folgenden Beispiel wird eine CREATE TABLE-Anweisung wie folgt für die <source> ausgeführt:
CREATE TABLE fin.exp_phone;
Diese Anweisung wird wie folgt auf dem Ziel ausgeführt:
CREATE TABLE fin2.exp_phone;
Wenn in der MAP-Anweisung kein Zieleigentümer angegeben ist, ordnet Replicat ihn dem Datenbankbenutzer zu, der mit dem Parameter USERIDALIAS angegeben ist.
Bei DDL, das abgeleitete Objekte erstellt, wie z.B. einen Trigger, muss der Wert für OBJNAME der Name des Basisobjekts und nicht der Name des abgeleiteten Objekts sein.
Beispiel: Um die folgende DDL-Anweisung aufzunehmen, lautet der korrekte Wert hr.accounts, nicht hr.insert_trig.
CREATE TRIGGER hr.insert_trig ON hr.accounts;
Bei RENAME-Vorgängen muss der Wert für OBJNAME der neue Tabellenname sein. Beispiel: Um die folgende DDL-Anweisung aufzunehmen, lautet der korrekte Wert hr.acct.
ALTER TABLE hr.accounts RENAME TO acct;
OBJTYPE <type>
Verwenden Sie OBJTYPE, um INCLUDE oder EXCLUDE auf einen bestimmten Typ von Datenbankobjekt anzuwenden. Verwenden Sie für <type> einen beliebigen Objekttyp, der für die Datenbank gültig ist, wie TABLE, INDEX und TRIGGER. Für eine Oracle-Materialized View und ein Materialized View-Log sind die korrekten Typen snapshot bzw. snapshot log. Setzen Sie den Namen des Objekttyps in einfache Anführungszeichen. Beispiel:
DDL INCLUDE OBJTYPE 'INDEX'
DDL INCLUDE OBJTYPE 'SNAPSHOT'
Verwenden Sie für den Oracle-Objekttyp USER nicht die Option OBJNAME, da OBJNAME owner.object oder <container.owner.object> erwartet, während USER nur ein Schema aufweist.
OPTYPE <type>
Verwenden Sie OPTYPE, um INCLUDE oder EXCLUDE auf einen bestimmten Typ von DDL-Vorgang anzuwenden, wie CREATE, ALTER und RENAME. Verwenden Sie für <type> einen beliebigen DDL-Befehl, der für die Datenbank gültig ist. Beispiel: Um ALTER-Vorgänge einzuschließen, lautet die korrekte Syntax:
DDL INCLUDE OPTYPE ALTER
INSTR string
Verwenden Sie INSTR, um INCLUDE- oder EXCLUDE-Anweisungen auf DDL-Anweisungen anzuwenden, die eine bestimmte Zeichenfolge in der Befehlssyntax selbst, jedoch nicht in Kommentaren enthalten. Beispiel: Im Folgenden wird DDL ausgeschlossen, das einen Index erstellt.
DDL INCLUDE ALL EXCLUDE INSTR 'CREATE INDEX'
Setzen Sie die Zeichenfolge in einfache Anführungszeichen. Bei der Suche nach Zeichenfolgen wird die Groß-/Kleinschreibung nicht beachtet.
INSTR unterstützt keine einfachen Anführungszeichen (' '), die sich innerhalb der Zeichenfolge befinden, und unterstützt auch keine NULL-Werte.
INSTRCOMMENTS comment_string
(Gültig für Oracle) Verwenden Sie INSTRCOMMENTS, um INCLUDE- oder EXCLUDE-Anweisungen auf DDL-Anweisungen anzuwenden, die eine bestimmte Zeichenfolge in einem Kommentar enthalten, jedoch nicht innerhalb des Befehls DDL selbst. Mit INSTRCOMMENTS können Sie Kommentare als Filter-Agent verwenden.
Beispiel: Im Folgenden werden DDL-Anweisungen ausgeschlossen, die die Zeichenfolge "Nur Quelle" in den Kommentaren enthalten.
DDL INCLUDE ALL EXCLUDE INSTRCOMMENTS 'SOURCE ONLY'
In diesem Beispiel werden DDL-Anweisungen wie die folgenden nicht repliziert.
CREATE USER john IDENTIFIED BY john /<source only>/;
Setzen Sie die Zeichenfolge in einfache Anführungszeichen. Bei der Zeichenfolgensuche wird die Groß-/Kleinschreibung nicht beachtet. Sie können INSTR und INSTRCOMMENTS kombinieren, um nach einer Zeichenfolge in der Befehlssyntax und in den Kommentaren derselben DDL-Anweisung zu filtern.
INSTRCOMMENTS unterstützt keine einfachen Anführungszeichen (' '), die sich innerhalb der Zeichenfolge befinden, und unterstützt auch keine NULL-Werte.
INSTRWORDS word_list
Verwenden Sie INSTRWORDS, um INCLUDE- oder EXCLUDE-Anweisungen auf DDL-Anweisungen anzuwenden, die die angegebenen Wörter enthalten.
Geben Sie für <word_list> die Wörter in beliebiger Reihenfolge in einfachen Anführungszeichen an. Um Leerzeichen einzuschließen, setzen Sie das Leerzeichen (und ggf. das Wort) in doppelte Anführungszeichen. Doppelte Anführungszeichen können auch verwendet werden, um Sätze einzuschließen.
Alle angegebenen Wörter müssen in der Datei DDL vorhanden sein, damit INSTRWORDS wirksam wird.
Beispiel:
DDL INCLUDE OPTYPE ALTER OBJTEYP 'TABLE' INSTRWORDS 'ALTER CONSTRAINT " xyz"'
Dieses Beispiel entspricht den folgenden DDL-Anweisungen:
ALTER TABLE ADD CONSTRAINT xyz CHECK
ALTER TABLE DROP CONSTRAINT xyz
INSTRWORDS unterstützt keine einfachen Anführungszeichen (' '), die sich innerhalb der Zeichenfolge befinden, und unterstützt auch keine NULL-Werte.
INSTRCOMMENTSWORDS word_list
(Gültig für Oracle) Funktioniert genauso wie INSTRWORDS, gilt jedoch nur für Kommentare in einer DDL-Anweisung und nicht für die DDL-Syntax selbst. Mit INSTRCOMMENTS können Sie Kommentare als Filter-Agent verwenden.
INSTRCOMMENTSWORDS unterstützt keine einfachen Anführungszeichen (' '), die sich innerhalb der Zeichenfolge befinden, und unterstützt auch keine NULL-Werte.
Sie können INSTRWORDS und INSTRCOMMENTSWORDS kombinieren, um nach einer Zeichenfolge in der Befehlssyntax und in den Kommentaren derselben DDL-Anweisung zu filtern.
SOURCECATALOG catalog | ALLCATALOGS
Mit diesen Optionen können Sie angeben, wie nicht qualifizierte Objektnamen in einer OBJNAME-Klausel in den richtigen Container aufgelöst werden. Verwenden Sie diese Optionen, wenn die Quelldatenbank eine Oracle-Containerdatenbank ist.
SOURCECATALOG gibt einen Standardcontainer für alle Objektnamen an, die in derselben INCLUDE- oder EXCLUDE-Klausel angegeben sind. Um wirksam zu werden, muss SOURCECATALOG vor der OBJNAME-Spezifikation angegeben werden. Weitere Informationen finden Sie unter "SOURCECATALOG", einschließlich Anweisungen, die zweiteilige Namen enthalten, wobei dreiteilige Objektnamen erforderlich sind, um ein Objekt vollständig zu identifizieren.
ALLCATALOGS gibt an, dass alle Container der Datenbank bei der Auflösung von Objektnamen berücksichtigt werden sollen, die in derselben INCLUDE- oder EXCLUDE-Klausel angegeben sind. ALLCATALOGS kann vor oder nach der OBJNAME-Spezifikation platziert werden.
Die folgende Prioritätsreihenfolge wird angegeben, wenn verschiedene Katalogspezifikationen in einer Parameterdatei vorhanden sind:
-
ALLCATALOGSin einerINCLUDE- oderEXCLUDE-Klausel überschreibt alleSOURCECATALOG-Spezifikationen in derINCLUDE- oderEXCLUDE-Klausel und im Root-Verzeichnis der Parameterdatei. Außerdem überschreibt sie die Containerspezifikation eines vollqualifizierten Objektnamens in derOBJNAME-Klausel. -
Eine explizite Katalogspezifikation in der
OBJNAME-Klausel überschreibt alle Instanzen vonSOURCECATALOG(aber nichtALLCATALOGS). -
SOURCECATALOGin einerINCLUDE- oderEXCLUDE-Klausel überschreibt den globalenSOURCECATALOG-Parameter, der im Root-Verzeichnis derTABLE- oderMAP-Anweisung angegeben wird. -
Der globale Parameter
SOURCECATALOGwird für nicht qualifizierte Objektnamen inOBJNAME-Klauseln wirksam, wenn die KlauselINCLUDEoderEXCLUDESOURCECATALOGoderALLCATALOGSnicht angibt. -
Wenn keiner der vorhergehenden Parameter vorhanden ist, werden alle Kataloge berücksichtigt.
STAYMETADATA
(Gültig für Oracle). Verhindert, dass Metadaten von Extract erfasst oder von Replicat angewendet werden.
Wenn Extract das erste Mal auf DML in einer Tabelle trifft, ruft es die Metadaten für diese Tabelle ab. Wenn DDL in dieser Tabelle gefunden wird, werden die alten Metadaten invalidiert. Die nächste DML in dieser Tabelle wird mit den neuen Metadaten abgeglichen, sodass die Zieltabellenstruktur immer mit derjenigen der Quelle auf dem neuesten Stand ist.
Wenn Sie jedoch wissen, dass ein bestimmter DDL-Vorgang keine Auswirkungen auf die Metadaten der Tabelle hat, können Sie STAYMETADATA verwenden, damit die aktuellen Metadaten nicht abgerufen oder repliziert werden. Dies ist eine Leistungsverbesserung, die von Vorgängen wie Importen und Exporten profitiert, bei denen DDL oft abgeschnitten wird und Constraints deaktiviert werden. Diese Vorgänge wirken sich nicht auf die Tabellenstruktur aus, da sie sich auf die Integrität der nachfolgenden Datenreplikation beziehen, sodass sie in solchen Fällen ignoriert werden können. Beispiel: ALTER TABLE ADD FOREIGN KEY wirkt sich nicht auf Tabellenmetadaten aus.
Ein Beispiel dafür, wie dies selektiv angewendet werden kann, ist:
DDL INCLUDE ALL INCLUDE STAYMETADATA OBJNAME xyz
In diesem Beispiel wird angegeben, dass alle DDL für die Replikation eingeschlossen werden sollen. Nur DDL, das für das Objekt xyz ausgeführt wird, unterliegt STAYMETADATA.
STAYMETADATA kann auch auf die gleiche Weise in einer EXCLUDE-Klausel verwendet werden.
STAYMETADATA muss auf die gleiche Weise für Quelle und Ziel verwendet werden, um die Metadatenintegrität sicherzustellen.
Wenn STAYMETADATA verwendet wird, wird der Berichtsdatei eine Meldung hinzugefügt. DDL-Berichte werden durch den Parameter DDLOPTIONS mit der Option REPORT gesteuert.
Diese Funktionalität kann global auf alle DDL angewendet werden, die in der Quelle mit den @ddl_staymetadata-Skripten auftreten:
-
@ddl_staymetadata_ondeaktiviert die Metadatenversionierung global. -
@ddl_staymetadata_offaktiviert die Metadatenversionierung global erneut.
Diese Option sollte mit Unterstützung des technischen Supports von Oracle GoldenGate verwendet werden, da möglicherweise nicht immer ersichtlich ist, welche DDL Objektmetadaten betrifft. Bei unsachgemäßer Verwendung kann dies die Integrität der Replikationsumgebung beeinträchtigen.
Beispiele
Im Folgenden finden Sie einige Beispiele für verschiedene Anwendungsfälle:
Beispiel 1: DDL AUTOSCHEMA verwenden
-
Beispiel A:
So aktivieren Sie
AUTOSCHEMAfür alle Tabellen im Quellschemaatssrcund im Zielschemaatstgt:DDL AUTOSCHEMA INCLUDE ALL MAP atssrc.*, TARGET atstgt.*; -
Beispiel B:
Die Filterung (ähnlich wie in Beispiel 1) kann auch auf Basis von DDL-Typen mit der Klausel DDL AUTOSCHEMA INCLUDE/EXCLUDE OPTYPE aktiviert werden.
Beispiel: Um AUTOSCHEMA für das Schema hr zu aktivieren, aber das Schema finance auszuschließen, verwenden Sie das folgende Skript:
DDL AUTOSCHEMA &
INCLUDE OBJNAME hr.* &
EXCLUDE OBJNAME finance.*
MAP hr.*, TARGET hr.*;
MAP finance.*, TARGET finance.*;
-
Beispiel C:
Um
AUTOSCHEMAfür alle Tabellen zu aktivieren und eine benutzerdefinierteTYPEMAPzu verwenden, um einebigintin der Zieltabelle für alle Spalten des Quelltypsintfür alle Tabellen zu verwenden.DDL AUTOSCHEMA INCLUDE ALL AUTOSCHEMAOPTIONS TYPEMAP 'int'= 'bigint' MAP atssrc.*, TARGET atstgt.tgt_* -
Beispiel D:
Um
AUTOSCHEMAfür alle Tabellen zu aktivieren und eine benutzerdefinierteTYPEMAPzu verwenden, um einebigintin der Zieltabelle für alle Spalten des Quelltypsintfür alle Tabellen zu verwenden, abersmallintals Zielspaltentyp für die Quelleintzu verwenden, geben Sie alle Tabellen unter dem Finanzschema ein.DDL AUTOSCHEMA INCLUDE ALL AUTOSCHEMAOPTIONS TYPEMAP 'int'= 'bigint' MAP hr.*, TARGET hr.*; MAP finance.*, TARGET finance.*, AUTOSCHEMAOPTIONS (TYPEMAP 'smallint'='bigint');<–>
Beispiel 2: Parameteroptionen von DDL kombinieren
Im Folgenden finden Sie ein Beispiel dafür, wie die Optionen des Parameters DDL kombiniert werden.
DDL &
INCLUDE UNMAPPED &
OPTYPE alter &
OBJTYPE 'table' &
OBJNAME users.tab* &
INCLUDE MAPPED OBJNAME * &
EXCLUDE MAPPED OBJNAME temporary.tab
Die kombinierten Filterkriterien in dieser Anweisung geben Folgendes an:
-
INCLUDEalleALTER TABLE-Anweisungen für Tabellen, die nicht mit einerTABLE- oderMAP-Anweisung (GeltungsbereichUNMAPPED) zugeordnet sind, aber nur, wenn diese Tabellen Eigentümer vonuserssind und deren Namen mittabbeginnen, -
INCLUDEalleDDL-Vorgangstypen für alle Tabellen, die mit einerTABLE- oderMAP-Anweisung (GeltungsbereichMAPPED) zugeordnet sind, -
EXCLUDE: AlleDDL-Vorgangstypen für alle Tabellen, dieMAPPEDim Geltungsbereich enthalten, jedoch nur, wenn diese Tabellen Eigentum vontemporarysind und nur, wenn ihre Namen mittabbeginnen.
Beispiel 3: Ereignisaktionen aufnehmen
Im folgenden Beispiel wird die Ereignisaktion REPORT für alle DDL-Datensätze angegeben.
DDL INCLUDE ALL EVENTACTIONS (REPORT)
Beispiel 4: Ereignisaktion für eine Teilmenge von DDL verwenden
Das folgende Beispiel zeigt, wie EVENTACTIONS für eine Teilmenge der DDL verwendet werden kann. Alle DDL müssen repliziert werden, aber nur die DDL, die für explizit benannte Objekte ausgeführt wird, ist berechtigt, die Ereignisaktionen von REPORT und LOG auszulösen.
DDL INCLUDE ALL &
INCLUDE OBJNAME sales.t* EVENTACTIONS (REPORT) &
INCLUDE OBJNAME fin.my_tab EVENTACTIONS (LOG INFO)
Beispiel 5: Verschiedene Möglichkeiten, <catalog>-Namen für DDL anzugeben, die für Objekte in einer Oracle-Containerdatenbank <source> ausgegeben werden
Das folgende Beispiel zeigt, wie Sie Katalognamen für DDL angeben, die für Objekte in einer Oracle-Quellcontainerdatenbank ausgegeben werden.
- Das Folgende umfasst
pdb1.sch1.obj1undpdb2.sch2.obj2für dieDDL-Verarbeitung.
SOURCECATALOG pdb1
DDL INCLUDE OBJNAME sch1.obj1 INCLUDE SOURCECATALOG pdb2 OBJNAME sch2.obj2
- Im Folgenden sind alle Objekte mit dem Namen
sch.objin einem beliebigen Katalog für die Verarbeitung vonDDLenthalten.
DDL INCLUDE ALLCATALOGS OBJNAME sch.obj
- Im Folgenden sind alle Objekte mit dem Namen
sch.objin einem beliebigen Katalog für dieDDL-Verarbeitung enthalten, daALLCATALOGSalle anderen Katalogspezifikationen außer Kraft setzt.
DDL INCLUDE ALLCATALOGS OBJNAME pdb.sch.obj
Beispiel 6: Zeigt die kombinierte Verwendung von ALLOWEMPTYOBJECT und ALLOWEMPTYOWNER an
Im Folgenden wird die kombinierte Verwendung von ALLOWEMPTYOBJECT und ALLOWEMPTYOWNER dargestellt.
DDL INCLUDE pdb.*.* ALLOWEMPTYOWNER ALLOWEMPTYOBJECT