DDLERROR
適用対象
ExtractおよびReplicat
説明
DDLERRORパラメータでは、ソースおよびターゲット・システムのDDLエラーを処理します。ExtractおよびReplicat用のオプションが用意されています。
Extract用DDLERROR
Extract用のDDLERRORパラメータ・オプションでは、Extractによって認識される、メタデータが検出不可能なオブジェクトに関するエラーを処理します。
デフォルト
異常終了
構文
DDLERROR [RESTARTSKIP number_of_skips] [RETRYDELAY seconds] [SKIPTRIGGERERROR number_of_errors]
-
RESTARTSKIPnumber_of_skips -
Extractの起動時に、特定の数のDDL操作をスキップおよび無視させ、エラーによるExtractの異常終了を防ぎます。デフォルトでは、DDLエラーが発生するとExtractは異常終了するため、操作はスキップされません。有効な値は1から100,000です。
スキップした操作をExtractレポート・ファイルに書き込むには、
DDLOPTIONSパラメータとREPORTオプションを使用します。 -
SKIPTRIGGERERRORnumber_of_errors -
(Oracle)Extractの起動時に、DDLトリガーが原因で発生する特定の数のDDLエラーをスキップおよび無視させます。有効な値は1から100,000です。
SKIPTRIGGERERRORは、RESTARTSKIPオプションの前にチェックされます。Extractがトリガー・エラーのためにDDL操作をスキップする場合、その操作はRESTARTSKIP指定の対象としてカウントされません。
Replicat用DDLERROR
Replicat用のDDLERRORパラメータ・オプションでは、DDLがターゲット・データベースに適用されるときに発生するエラーを処理します。DDLERRORオプションを使用して、ほとんどのエラーをデフォルトの方法(処理の停止など)で処理し、他のエラーを特定の方法で処理できます。予見されるすべてのエラーが処理されるよう、同一のパラメータ・ファイルに複数のDDLERRORインスタンスを使用できます。
デフォルト
異常終了
構文
DDLERROR
{error | DEFAULT} {response}
{INCLUDE inclusion_clause | EXCLUDE exclusion_clause}
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS]
[RETRYDELAY seconds] -
{error| DEFAULT} {response} -
{INCLUDEinclusion_clause| EXCLUDEexclusion_clause} -
特定のDDLが
DDLERROR文によって処理されるかどうかを制御する包含または除外句の始まりを識別します。構文および使用方法は、DDLのフィルタリング・オプションを参照してください。 -
[IGNOREMISSINGOBJECTS | ABENDONMISSINGOBJECTS] -
ターゲット上に見つからなかったオブジェクトでDMLが発行された場合、Extractが異常終了するかどうかを制御します。通常この条件が発生するのは、レプリケーション構成に含まれないDDLがターゲットで直接発行されるときです。または、ソース定義とターゲット定義の間に矛盾がある場合にも発生します。
-
[RETRYDELAYseconds] -
失敗した操作を再試行するまでの遅延(秒単位)を指定します。デフォルトは10秒です。
例
- 例1 DDLERRORの基本的な例
-
次の例では、
DDLERROR文に基づき、Replicatは指定されたエラーを無視しますが、その前に、該当の操作を10秒間隔で3回試行します。Replicatは、ワイルドカード指定tab1*を満たすオブジェクト上で実行される操作を除き、tab*(任意のユーザー、任意の操作)を満たす名前のオブジェクトで実行されるDDL操作にエラー処理を適用します。DDLERROR 1234 IGNORE RETRYOP MAXRETRIES 3 RETRYDELAY 10 & INCLUDE ALL OBJTYPE TABLE OBJNAME tab* EXCLUDE OBJNAME tab1*
このエラーを除くすべてのエラーを処理するために、次の
DDLERROR文を追加できます。DDLERROR DEFAULT ABEND
この場合、ReplicatはDDLエラー発生時に異常終了します。
- 例2 複数のDDLERROR文の使用
-
パラメータ・ファイルに
DDLERROR文をリストする順番は、各文の有効性に影響しませんが、複数のDDLERROR文に、追加の修飾子なしで同一のエラーが指定されている場合は例外です。このようなケースでは、Replicatは最初にリストされている文のみを使用します。たとえば、次のような文では、エラーが発生するとReplicatは異常終了します。DDLERROR 1234 ABEND DDLERROR 5678 IGNORE
ただし、適切な修飾子を指定すれば、前述の構成を有効に使用できます。次に例を示します。
DDLERROR 1234 ABEND INCLUDE OBJNAME tab* DDLERROR 5678 IGNORE
このケースでは、
INCLUDE文が追加されているため、Replicatは、エラーのDDL文のオブジェクト名がワイルドカードtab*に一致する場合にのみ異常終了します。Replicatは、他のオブジェクト名を含むエラー操作を無視します。
親トピック: Oracle GoldenGateパラメータ