DDLERROR
Gültig für
Extract und Replicat
Beschreibung
Verwenden Sie den Parameter DDLERROR, um DDL-Fehler in Quell- und Zielsystemen zu behandeln. Optionen sind für Extract und Replicat verfügbar.
DDLERROR für Extraktion
Verwenden Sie die Extract-Option des Parameters DDLERROR, um Fehler bei Objekten zu behandeln, die in Extract gefunden wurden und für die keine Metadaten gefunden werden können.
Standard
Abbrechen
Syntax
DDLERROR [RESTARTSKIP <number_of_skips>] [RETRYDELAY <seconds>] [SKIPTRIGGERERROR <number_of_errors>]
RESTARTSKIP <number_of_skips>
Führt dazu, daß Extract eine bestimmte Anzahl von DDL-Vorgängen beim Hochfahren überspringt und ignoriert, um zu verhindern, daß Extract einen Fehler beendet. Standardmäßig führt ein DDL-Fehler dazu, dass Extract abgebrochen wird, sodass keine Vorgänge übersprungen werden. Gültige Werte: 1 bis 100000.
Um Informationen über übersprungene Vorgänge in die Extract-Berichtsdatei zu schreiben, verwenden Sie den Parameter DDLOPTIONS mit der Option REPORT.
SKIPTRIGGERERROR <number_of_errors>
(Oracle) Führt dazu, dass Extract eine bestimmte Anzahl von DDL-Fehlern überspringt und ignoriert, die vom DDL-Trigger beim Hochfahren verursacht werden. Gültige Werte sind 1 bis 100000.
SKIPTRIGGERERROR wird vor der Option RESTARTSKIP geprüft. Wenn Extract einen DDL-Vorgang aufgrund eines Triggerfehlers überspringt, wird dieser Vorgang nicht zur RESTARTSKIP-Spezifikation gezählt.
DDLERROR für Replicat
Verwenden Sie die Replicat-Optionen des Parameters DDLERROR, um Fehler zu behandeln, die auftreten, wenn DDL auf die Zieldatenbank angewendet wird. Mit den Optionen DDLERROR können Sie die meisten Fehler standardmäßig behandeln, z.B. um die Verarbeitung zu stoppen und andere Fehler auf eine bestimmte Weise zu behandeln. Sie können mehrere Instanzen von DDLERROR in derselben Parameterdatei verwenden, um alle erwarteten Fehler zu verarbeiten.
Standard
Abbrechen
Syntax
DDLERROR
{<error> | DEFAULT} {<response>}
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY <seconds>]
{<error> | DEFAULT} {<response>}
<error>
Gibt einen expliziten DDL-Fehler für diese DDLERROR-Anweisung an, die verarbeitet werden soll.
DEFAULT
Gibt den Standardwert <response> für alle DDL-Fehler an, für die keine explizite DDLERROR-Anweisung vorhanden ist.
<response>
Die von Replicat ausgeführte Aktion, wenn eine DDL <error> ausgeführt wird. Einer der folgenden Namen kann verwendet werden:
ABEND
Setzen Sie den Vorgang zurück, und beenden Sie die Verarbeitung anormal. ABEND ist der Standardwert.
DISCARD
Protokollieren Sie den fehlerhaften Vorgang in der Discard-Datei, aber fahren Sie mit der Verarbeitung der folgenden DDL fort.
IGNORE
Ignoriert den Fehler.
{INCLUDE <inclusion_clause> | EXCLUDE <exclusion_clause>}
Gibt den Beginn einer Einschluss- oder Ausschlussklausel an, die steuert, ob bestimmte DDL von der DDLERROR-Anweisung verarbeitet oder nicht verarbeitet wird. Syntax und Verwendung finden Sie unter "DDL Filteroptionen".
[IGNOREMISSINGOBJECTS |
ABENDONMISSINGOBJECTS] |
Steuert, ob Extract beendet wird, wenn DML für Objekte ausgegeben wird, die nicht auf dem Ziel gefunden werden konnten. Diese Bedingung tritt normalerweise auf, wenn DDL, das nicht in der Replikationskonfiguration enthalten ist, direkt auf dem Ziel abgesetzt wird oder wenn eine Abweichung zwischen der Quell- und der Zieldefinition vorliegt.
IGNOREMISSINGOBJECTS
Führt dazu, dass Replicat DML-Vorgänge für fehlende Tabellen überspringt.
ABENDONMISSINGOBJECTS
Führt dazu, dass Replicat die DML-Vorgänge für fehlende Tabellen beendet.
[RETRYDELAY <seconds>]
Gibt die Verzögerung in Sekunden zwischen Versuchen an, einen nicht erfolgreichen Vorgang erneut zu versuchen. Standardwert: 10 Sekunden.
Beispiele
Beispiel 1: DDLERROR - Allgemeines Beispiel
Im folgenden Beispiel führt die DDLERROR-Anweisung dazu, dass Replicat den angegebenen Fehler ignoriert, jedoch nicht, bevor der Vorgang dreimal in Intervallen von zehn Sekunden wiederholt wird. Replicat wendet die Fehlerbehandlung auf DDL-Vorgänge an, die für Objekte ausgeführt werden, deren Namen den Platzhalter tab* (jeder Benutzer, jeder Vorgang) erfüllen, mit Ausnahme derjenigen, die tab1* erfüllen.
DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 &
INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*
Um alle Fehler außer diesem Fehler zu behandeln, kann die folgende DDLERROR-Anweisung hinzugefügt werden.
DDLERROR DEFAULT ABEND
In diesem Fall wird Replicat bei DDL-Fehlern abgebrochen.
Beispiel 2: Mehrere DDLERROR-Anweisungen verwenden
Die Reihenfolge, in der Sie DDLERROR-Anweisungen in der Parameterdatei auflisten, wirkt sich nur dann auf ihre Gültigkeit aus, wenn mehrere DDLERROR-Anweisungen denselben Fehler ohne zusätzliche Qualifier angeben. In diesem Fall verwendet Replicat nur das erste aufgelistete. Beispiel: Bei den folgenden Anweisungen wird Replicat den Fehler abbrechen.
DDLERROR 1234 ABEND
DDLERROR 5678 IGNORE
Mit den richtigen Qualifiern wird die vorherige Konfiguration jedoch nützlicher. Beispiel:
DDLERROR 1234 ABEND INCLUDE OBJNAME tab*
DDLERROR 5678 IGNORE
Da in diesem Fall eine INCLUDE-Anweisung vorhanden ist, wird Replicat nur abgebrochen, wenn ein Objektname in einer fehlerhaften DDL-Anweisung mit dem Platzhalter tab* übereinstimmt. Replicat ignoriert fehlerhafte Vorgänge, die einen anderen Objektnamen enthalten.