DBOPTIONS

適用対象

ExtractおよびReplicat

説明

DBOPTIONSパラメータでは、データベース・オプションを指定します。これはグローバル・パラメータで、パラメータ・ファイル内のすべてのTABLEまたはMAP文に適用されます。DBOPTIONSパラメータの一部のオプションは、ExtractまたはReplicatのみに適用されます。

DBOPTIONSパラメータは、他のパラメータに関係なく、パラメータ・ファイル内の任意の場所に配置できます。

デフォルト

なし

構文

DBOPTIONS
[ALLOWLOBDATATRUNCATE | NOALLOWLOBDATATRUNCATE]
[ALLOWUNUSEDCOLUMN | NOALLOWUNUSEDCOLUMN]
[ALLOWNONSTANDARDINTERVALDATA]
[BINDCHARFORBITASCHAR]
[CATALOGCONNECT | NOCATALOGCONNECT]
[CONNECTIONPORT port]
[DECRYPTPASSWORD shared_secret ENCRYPTKEY {DEFAULT | key_name}]
[DEFERREFCONST]
[DISABLECOMMITNOWAIT]
[DISABLELOBCACHING]
[ENABLE_INSTANTIATION_FILTERING]
[EMPTYLOBSTRING 'string']
[FETCHBATCHSIZE records]
[FETCHCHECKFREQ seconds]
[FETCHLOBS | NOFETCHLOBS]
[FETCHRETRYCOUNT number]
[FETCHTIMEOUT seconds | NOFECHTIMEOUT]
[FORCE_XML_ESCAPE_CONVERSION]
[HOST {DNS_name | IP_address}]
[INTEGRATEDPARAMS(parameter[, ...])]
[LIMITROWS | NOLIMITROWS]
[LOBBUFSIZE bytes]
[LOBWRITESIZE bytes]
[SESSIONPOOLMAX max_value | 
[SESSIONPOOLMIN min_value][SESSIONPOOLINCR increment_value]
[SETTAG [tag_value | NULL] ]
[SHOWINFOMESSAGES]
[SHOWWARNINGS]
[SKIPTEMPLOB | NOSKIPTEMPLOB]
[SOURCE_DB_NAME src_dbase_global_name]
[SPTHREAD | NOSPTHREAD]
[SQLMODE]
[SUPPRESSTEMPORALUPDATES]
[SUPPRESSTRIGGERS | NOSUPPRESSTRIGGERS]
[TDSPACKETSIZE bytes]
[TRANSNAME trans_name]
[USEODBC | USEREPLICATIONUSER]
[USEDATABASEENCODING] 
[XMLBUFSIZE bytes]
ALLOWUNUSEDCOLUMN | NOALLOWUNUSEDCOLUMN

OracleのExtractに有効です。Extractが未使用の列を含む表を検出したときに異常終了するかどうかを制御します。

デフォルトはALLOWUNUSEDCOLUMNです。Extractは未使用の列を含む表を検出すると、処理を継続し、警告を生成します。このパラメータを使用する場合は、正しいメタデータ・マッピングを実行できるように、ターゲットにも同じ未使用の列が存在しているか、Replicatにこの表のソース定義ファイルを指定する必要があります。

NOALLOWUNUSEDCOLUMNでは、Extractは未使用の列を検出すると異常終了します。

ALLOWLOBDATATRUNCATE | NOALLOWLOBDATATRUNCATE

DB2 LUWおよびMySQL.のReplicatに有効です。ALLOWLOBDATATRUNCATEでは、レプリケートするLOBデータがターゲットのCHARVARCHARBINARYまたはVARBINARY列に対して大きすぎる場合に、Replicatが異常終了することを防ぎます(ターゲットLOB列のみに適用可能です)。DB2 LUWのReplicatのALLOWLOBDATATRUNCATEでは、レプリケートするLOBデータがターゲットのLOB列に対して大きすぎる場合に、Replicatが異常終了することを防ぎます。このLOBデータは、ターゲット列の最大サイズに切り捨てられ、エラー・メッセージや警告は生成されません。

デフォルトはNOALLOWLOBDATATRUNCATEで、レプリケートするLOBが大きすぎる場合に、Replicatを異常終了させ、エラー・メッセージを生成します。

ALLOWNONSTANDARDINTERVALDATA

PostgreSQLに有効です。

Extractパラメータ・ファイルでDBOPTIONS ALLOWNONSTANDARDINTERVALDATAを使用すると、符号が混在する間隔データ(またはOracle GoldenGateでサポートされない形式の間隔データ)を文字列(標準の間隔データではなく)として取得できます。このオプションを使用すると、間隔データは次のような形式で証跡に書き込まれ、ターゲットのCHAR列に適用されます。

year-component-sign years-months days-component-sign days hour-component-sign hours:minutes:seconds.fractional_seconds

たとえば、+1026-9 +0 +0:0:22.000000は、1026年9か月0日0時間0分22秒と解釈されます。-0-0 -0 -8は、0年0か月0日-8時間と解釈されます。+1-3 +0 +3:20は、1年3か月0日3時間20分と解釈されます。

Replicatでは、ソースの間隔データがDBOPTIONS ALLOWNONSTANDARDINTERVALDATAを使用して取得されて証跡に文字列として書き込まれた場合、対応するソース列はターゲットのchar型またはbinary型の列にマップできます。

BINDCHARFORBITASCHAR

DEFGEN、Extract、およびDB2 for iのReplicatに有効です。CCSID 65535のCHARまたはVARCHAR、またはCHARおよびVARCHAR FOR BIT DATAとして定義される列を、変換可能な通常のエンコーディングがフィールドにある場合のように処理できます。エンコーディングはジョブCCSIDから取得されます。このオプションが有効な場合、DEFGENは、フィールドがdefsファイルのバイナリであることを示しません。

CATALOGCONNECT | NOCATALOGCONNECT

ODBCデータベースのExtractおよびReplicatに有効です。

デフォルトでは、Oracle GoldenGateはカタログ問合せのために新しい接続を作成しますが、NOCATALOGCONNECTを使用すると新しい接続の作成を防止できます。

CONNECTIONPORT port

マルチデーモンMySQLのReplicatに有効です。Replicatが接続する必要があるインスタンスのTCP/IPポートを指定します。最小値は1、デフォルト値は3306です。

DECRYPTPASSWORD shared_secret algorithm ENCRYPTKEY {key_name | DEFAULT}

クラシック・キャプチャ・モードのExtractに有効です(Oracle)。

このオプションは、統合Extractには不要であり、暗号化されたデータは自動的に処理されます。

Oracle Transparent Data Encryption (TDE)を使用して暗号化されたREDOログ・データを復号化する、TDEキーを復号化する共通キー(パスワード)を指定します。TDEキーは、まず、共通キーをキーとして使用してOracleサーバー内で暗号化された後、Extractに配信され、そこで同じ共通キーを使用して復号化されます。共通鍵は、Oracleサーバー・セキュリティ担当者によって、Oracle WalletまたはHardware Security Moduleで作成する必要があります。Oracle GoldenGate管理者のみが、共通鍵を知っている必要があります。

復号化オプションを使用するには、まずGGSCIでENCRYPT PASSWORDコマンドを使用して、暗号化された共通鍵を生成し、ENCKEYSファイルを作成する必要があります。

パラメータ・オプション:

shared_secret

ENCRYPT PASSWORDコマンドの結果からコピーされる、暗号化された共通鍵(パスワード)です。

algorithm

パスワードの暗号化に使用した暗号化アルゴリズムを、AES128AES192またはAES256の中から指定します。

ENCRYPTKEY key_name

ENCKEYS参照ファイル内のユーザー作成の暗号化キーの論理名を指定します。ENCRYPT PASSWORDKEYNAME key_nameオプションとともに使用された場合に使用します。ENCKEYSファイルをローカル・システムに作成する必要があります。

ENCRYPTKEY DEFAULT

指定すると、Oracle GoldenGateでランダムなキーが使用されます。ENCRYPT PASSWORDKEYNAME DEFAULTオプションとともに使用された場合に使用します。

ENCKEYSを含むOracle GoldenGateの暗号化オプションの詳細は、『Oracle GoldenGateの管理』ENCKEYSメソッドによるデータの暗号化に関する項を参照してください。

DEFERREFCONST | NODEFERREFCONST

Oracleの非統合Replicatに有効です。並列統合Replicatの場合のデフォルト・オプション。

Replicatトランザクションがコミットされるまで、Oracleターゲット・データベースによるカスケード削除およびカスケード更新の参照整合性制約のチェックおよび強制を延期するように、DEFERRABLEに制約を設定します。この時点で制約違反がある場合、エラーが生成されます。統合Replicatでは、ターゲット・システムでの参照制約の無効化は必要ありません。

ターゲット表での制約を無効化するかDEFERREDに設定するかわりに、DEFERREFCONSTを使用できます。使用すると、DEFERREFCONSTは、DEFERABLEおよびNOT DEFERABLEの両方の制約を延期します。DEFERREFCONSTは、Replicatが処理するすべてのトランザクションに適用します。DEFERREFCONSTパラメータは、Oracle 11.2.0.2以降で動作します。

この機能をサポートしていないOracle Databaseリリースととも使用する場合、DEFERREFCONSTは無視され、Oracle GoldenGateログに通知は返されません。コミット操作でのエラーを処理するために、パラメータ・ファイルのルート・レベルでREPERRORを使用し、TRANSDISCARDまたはTRANSEXCEPTIONオプションを指定できます。

ノート:

親および子の表の関連する行が同じスレッドによって処理されることを保証する方法がないため、DEFERREFCONST調整Replicatとともに使用しないでください。 

DEFERREFCONSTオプションを無効にするには、NODEFERREFCONSTオプションを使用します。

DISABLECOMMITNOWAIT

OracleのReplicatに有効です。Replicatによる非同期COMMITの使用を無効化します。非同期COMMIT文には、NOWAITオプションが含まれます。

DISABLECOMMITNOWAITを使用する場合、Replicatは、標準の同期COMMIT (WAITオプションを使用するCOMMIT)を発行します。

DISABLELOBCACHING

Oracleの非統合Replicatに有効です。OracleのLOBキャッシング・メカニズムを無効にします。デフォルトでは、ReplicatはOracleのLOBキャッシング・メカニズムを有効にします。

ENABLE_INSTANTIATION_FILTERING

Oracleに有効です。Oracleデータ・ポンプを使用してインポートした表、またはSET_INSTANTIATION_CSNコマンドで手動でインスタンス化した表に対して、自動的な表ごとのインスタンス化CSNフィルタリングを有効化します。

FETCHBATCHSIZE records

Oracle、DB2 for i、DB2 z/OS、PostgreSQLおよびSQL ServerのExtractに有効です。初期ロードのパフォーマンスを高めるために、1行ごとのフェッチのかわりに配列フェッチを有効にします。初期ロードExtractに使用します。

Oracle、DB2 for i、DB2 z/OSおよびSQL Serverに有効な値は、フェッチ当たり0から1000000レコードです。DB2 LUWに有効な値は、フェッチ当たり1から1000000レコードです。ゼロ(0)は有効な値ではありません

デフォルトは1000です。バッチ・サイズが非常に小さくなるか非常に大きくなると、パフォーマンスは低下します。表にLOBデータが含まれている場合、Extractは1行フェッチ・モードに戻り、その後バッチ・フェッチモードを再開します。

FETCHCHECKFREQ seconds

Oracleの統合Extractに有効です。ADGのキャッチ・アップを確認する各フェッチ・チェック間でExtractが待機する秒数を指定します。数値を小さくするとレイテンシは向上しますが、current_scn from v$databaseの問合せ数は増加します。デフォルト値は3秒で、最大値は120秒です。

FETCHLOBS | NOFETCHLOBS

z/OS上のDB2およびDB2 LUWに有効です。表のLOBオプションがNOT LOGGEDに設定されている場合に、データベース表からのLOBの直接のフェッチを抑止します。NOT LOGGEDが設定されている場合、この列の値はトランザクション・ログからは入手できず、表自体からのみ取得できます。デフォルトでは、Oracle GoldenGateはLOBへの変更をトランザクション・ログから取得します。デフォルトは、FETCHLOBSです。

FETCHRETRYCOUNT number

OracleのExtractに有効です。ADGのキャッチ・アップの待機時に、ExtractがADGの進捗または進捗がない理由を報告するまでの、Extractの試行回数を指定します。この値にFETCHCHECKFREQを乗算することで、ADGの進捗を報告するおおよその頻度が決まります。FETCHRETRYCOUNTのデフォルト値は5であり、有効な値の範囲は0から1000までです。

FETCHTIMEOUT seconds | NOFETCHTIMEOUT

OracleのExtractに有効です。ADGに進捗が見られない場合の、Extractが異常終了するまでの待機秒数を指定します。進捗がないのは、MRPが実行されていない、またはREDO変更を適用していないことが原因の可能性があります。これが発生した場合は、ADGデータベースを調べる必要があります。デフォルト値は30秒。有効な値は0から4294967295 (ub4の最大値)秒です。NOFETCHTIMEOUTは、タイムアウトしない(FETCHTIMEOUT 0と同じ)ことを意味します。これには、秒数の指定はできません。

FORCE_XML_ESCAPE_CONVERSION

Oracle GoldenGate 19cのトレイル・ファイル形式で、FORCE_XML_ESCAPE_CONVERSIONが有効にされている場合、ReplicatはANYDATA列の文字タイプの改行文字をエスケープします。このパラメータが19.1以上の形式のトレイル・ファイルに対して有効にされている場合、Extractはすでに改行のエスケープを実行しているので無視されます。

このパラメータは、Extractに対してNOUSENATIVEOBJSUPPORTが有効になっている場合のみANYDATA列に影響します。

ノート:

このパラメータ・オプションは、ネイティブ・モードでLogminerによってデータベースから取得されるANYDATA列には影響しません。

HOST {DNS_name | IP_address}

マルチデーモンMySQLのReplicatに有効です。Replicatの接続先のインスタンスをホストするシステムのDNS名またはIPアドレスを指定します。

INTEGRATEDPARAMS(parameter[, ...])

Oracleの統合Replicatに有効です。ターゲットOracleデータベース内のデータベース・インバウンド・サーバーを制御するパラメータの設定を渡します。

commit_serializationオプションは、統合ReplicatのINTEGRATEDPARAMSに使用できますが、統合モードの並列Replicatでは使用できません。Extract用の内部データベース・パラメータを設定するには、TRANLOGOPTIONS INTEGRATEDPARAMSを使用します。

統合Replicatの詳細、およびサポートされているインバウンド・サーバー・パラメータのリストは、Oracle DatabaseのためのOracle GoldenGateの使用様々なReplicatモードからの選択を参照してください。

LIMITROWS | NOLIMITROWS

MariaDB、MySQL、Oracle、SQL Server、SybaseおよびTimesTenのReplicatに有効です。

LIMITROWSでは、ターゲット表に主キーまたは一意キーが含まれていない場合に、同一のReplicat SQL文によって複数の行を更新または削除することを防ぎます。

デフォルトはLIMITROWSです。LIMITROWSおよびNOLIMITROWSは、パラメータ・ファイル内のすべてのMAP文にグローバルに適用されます。

MySQLでは、LIMITROWSUPDATEまたはDELETE文のLIMIT 1句を使用します。

OracleターゲットではLIMITROWS (デフォルト)を使用する必要があります。これはWHERE ROWNUM = 1を使用するか、WHERE句でAND ROWNUM = 1を使用します。

SQL Serverでは、LIMITROWSはUPDATEまたはDELETE文の前にSET ROWCOUNT 1句を使用します。

NOLIMITROWSでは、同一のReplicat SQL文によって複数の行を更新または削除することを許可します。

LOBBUFSIZE bytes

Db2 LUW、Db2 for i、Db2 z/OS、Oracle、PostgreSQLおよびSQL ServerのExtractに有効です。

初期ロード中にLOBデータをフェッチするためのバッファ・サイズを指定します。有効な値は、1024から104857600バイトです。デフォルトは1048576バイトです。

埋込みLOBの長さが指定のLOBBUFSIZEサイズを超えると、次のようなエラー・メッセージが生成されます。

GGS ERROR    ZZ-0L3  Buffer overflow, needed: 2048, allocated: 1024.
LOBWRITESIZE bytes

Oracleの非統合Replicatに有効です。Replicatがターゲット・データベースに書き込む各LOBのフラグメント・サイズ(バイト単位)を指定します。LOBデータは、このサイズに達するまでバッファに保持されます。LOBはフラグメントでデータベースに書き込む必要があるため、より大きなブロックで書き込むことで過度のI/Oを防止できます。この値が大きいほど、LOB全体をデータベースに書き込むためのReplicatからデータベース・サーバーへのI/Oコールは少なくなります。

Oracle LOBフラグメント・サイズの倍数を指定します。指定した値は、必要に応じてOracle LOBフラグメント・サイズの倍数に切り上げられます。デフォルトのLOB書込みサイズは、DBOPTIONS NOSKIPTEMPLOBが指定されている場合は32KB、DBOPTIONS SKIPTEMPLOBが指定されている場合は1MBです。有効な値は、2,048から2,097,152バイト(2MB)です。

デフォルトでは、ReplicatはOracleのLOBキャッシング・メカニズムを有効にします。OracleのLOBキャッシングを無効にするには、DBOPTIONSDISABLELOBCACHINGオプションを使用します。

SESSIONPOOLMAX max_value

Oracleの統合モードのExtractに有効です。Extractがコンテナ・データベースからのフェッチに使用する、OCIセッション・プールのセッション数の最大値を設定します。デフォルト値は10セッションです。USERIDまたはUSERIDALIASパラメータよりも前に指定する必要があります。そうしないと、指定が無視されてデフォルト値が使用されます。

SESSIONPOOLMIN min_value

Oracleの統合モードのExtractに有効です。Extractがコンテナ・データベースからのフェッチに使用する、OCIセッション・プールのセッション数の最小値を設定します。デフォルト値は2セッションです。USERIDまたはUSERIDALIASパラメータよりも前に指定する必要があります。そうしないと、指定が無視されてデフォルト値が使用されます。

SESSIONPOOLINCR increment_value

Oracleの統合モードのExtractに有効です。Extractがコンテナ・データベースからのフェッチに使用する、OCIセッション・プールに追加できる増分セッション数の値を設定します。デフォルト値は2セッションです。USERIDまたはUSERIDALIASパラメータよりも前に指定する必要があります。そうしないと、指定が無視されてデフォルト値が使用されます。

SETTAG [tag_value | NULL

OracleのReplicatに有効です。REDOログ内の関連付けられたReplicatのトランザクションの識別に使用される、Oracle REDOタグの値を設定します。REDOタグは、Replicat以外のトランザクションを識別するために使用することもできます。EXCLUDEUSERTRACETABLEよりも、このパラメータをお薦めします。

このオプションを使用して、双方向構成のReplicatの個別のレコードのサイクル(ループバック)を防いだり、他のトランザクションの取得をフィルタリングします。デフォルトのSETTAG値は00で、2Kバイトに制限されています。有効な値は、単一のOracle Streamsタグです。タグ値の最大長は、16進数の桁で2000 (0-9 A-F)です。

指定のタグでマーキングされたREDOのトランザクションは、ExtractでEXCLUDETAGオプションのTRANLOGOPTIONSパラメータをtag_valueに設定するとフィルタリングできます。タグに基づくフィルタリングを使用して、双方向構成のReplicatトランザクションのサイクル(ループバック)を防いだり、他のトランザクションの取得をフィルタリングします。詳細は、TRANLOGOPTIONSを参照してください。

DDLのタグ付けは、NOTAGオプションを指定したDDLOPTIONSパラメータを使用することで無効化できます。

hex_value

0からFの16進数値。デフォルト値は00です。有効な例を次に示します。

DBOPTIONS SETTAG 00112233445566778899AABBCCDDEEFF
DBOPTIONS SETTAG 00112233445566778899aabbccddeeff
DBOPTIONS SETTAG 123
NULL

関連付けられているReplicatについて、タグに基づくフィルタリングを無効にします。

SKIPTEMPLOB | NOSKIPTEMPLOB

Oracle Databaseのバージョン11gおよび12cのReplicatに有効です。LOBがターゲットOracleデータベースに適用される方法を制御します。SKIPTEMPLOBのデフォルト。

SKIPTEMPLOBでは、LOBデータをターゲットLOB列に直接書き込むことでパフォーマンスが向上します。Replicatでは空のLOB値でSQL文が作成され、LOBロケータがバインド変数に返されます。SQL文が正常に実行された後、返されたLOBロケータを使用してLOBデータが直接LOB列に書き込まれます。

NOSKIPTEMPLOBでは一時LOBがSQL文で使用されます。ReplicatではSQL文内でバインド変数が宣言され、一時LOBが関連付けられてから、一時LOBに書き込まれます。Oracle DatabaseはLOB列データを一時LOBから適用します。

SKIPTEMPLOBは、LOBデータが含まれるINSERTおよびUPDATE操作に適用されます。表にLOB列を使用したファンクション索引がある場合、LOBデータがNULLまたは空である、あるいはインラインで保存されている場合は、適用されません。部分的なLOB操作には適用されません。

SKIPTEMPLOBを使用すると、ReplicatはLOB列の行を更新/挿入する場合に、1つのDML操作とn個のLOB_WRITE (ピース単位)操作を生成/実行します。ただし、SKIPTEMPLOBFETCHPARTIALLOB (Extractパラメータ)とともに使用すると過剰なフェッチが発生するので、このように使用しないでください。

NOSKIPTEMPLOBが下位互換性のために提供され、それ以外の場合はデフォルトのSKIPTEMPLOBが保持されます。

SOURCE_DB_NAME src_dbase_global_name

Oracleに有効です。証跡のソース・データベースのグローバル名を指定します。DBOPTIONS ENABLE_INSTANTIATION_FILTERINGが有効な場合に、関連するインスタンス化情報の問合せに使用されます。このオプションは、メタデータが有効な12.2.証跡ファイルのインスタンス化フィルタリングでは省略可能です。

ソースにDOMAINがない場合は、ダウンストリーム・データベースでDOMAINを指定しないでください。

SPTHREAD | NOSPTHREAD

ExtractおよびReplicatに有効です。OracleおよびMySQLでは無効です。

ストアド・プロシージャの実行にSQLEXECを使用するために、別個のデータベース接続スレッドを作成します。デフォルトはNOSPTHREADです。

SQLMODE
このオプションを有効にすると、sql_mode変数は'ANSI_QUOTES' (set sql_mode = 'ANSI_QUOTES')に設定されます。二重引用符(")は識別子引用符文字(`引用符文字など)として扱い、文字列の引用符文字としては扱いません。このモードを有効にしても、`を使用して識別子を引用できます。ANSI_QUOTESを有効にすると、二重引用符(")が識別子として解釈されるため、これを使用してリテラル文字列を引用することはできません。

詳細は、『Server SQL Modes』を参照してください。

SUPPRESSTEMPORALUPDATES

DB2 LUW 10.1 FixPack 2以上のテンポラル表のレプリケーションに有効です。

SUPPRESSTEMPORALUPDATESでは、システム期間表とバイテンポラル表を関連する履歴表とともにレプリケートします。Oracle GoldenGateでは、行開始列、行終了列およびトランザクション開始ID列を、他の表列とともにレプリケートします。データベース・インスタンスに、適用側でSYSPROC.SET_MAINT_MODE_RECORD_NO_TEMPORALHISTORY¿ストアド・プロシージャを実行する実行権限があることを確認する必要があります。

デフォルトで、Oracle GoldenGateは行開始列、行終了列およびトランザクション開始ID列をレプリケートしません。これらの列の元の値を保持するには、次のオプションの1つを実装します。

  • ターゲット・テンポラル表に追加のタイムスタンプ列を追加し、列を適切にマップします。

  • 適用側で非テンポラル表を使用し、列を適切にマップします。

異種環境でのレプリケーション:

適用側にテンポラル表がない異種環境では、行開始列、行終了列およびトランザクション開始ID列の値を設定する必要があります。これらのソース列には、ターゲット・データベースでサポートされない可能性のあるタイムスタンプ値があります。最初にマップ変換関数を使用して、これらの値をターゲット・データベースでサポートされる形式に変換してから、列を適切にマップする必要があります。たとえば、MySQLのDATETIME範囲は`1000-01-01 00:00:00.000000'から'9999-12-31 23:59:59.999999¿'までです。DB2 LUWのタイムスタンプ値`0001-01-01-00.00.00.000000000000¿はMySQLにレプリケートできません。このような値をレプリケートするには、この値をMySQLのDATETIME形式に変換する必要があります。たとえば、システム期間表またはバイテンポラル表に次のタイムスタンプ列がある場合、次のようになります。

SYS_START                               
-------------------------------- 
0001-01-01-00.00.00.000000000000 

この列をMySQLにレプリケートするには、関数colmap()を次のように使用します。

map <source_schema>.<source_table>, target <target_schema>.<target_table> 
colmap(sys_start= @IF( ( @NUMSTR( @STREXT(sys_start,1,4))) > 1000, sys_start, 
'1000-01-01 00.00.00.000000')); 

テンポラル表の初期ロード:

Oracle GoldenGateではテンポラル表の初期ロードを通常どおりサポートしています。

テンポラル表に関する次の考慮事項に注意してください。

  • システム期間テンポラル表とアプリケーション期間テンポラル表との間のレプリケーションはサポートされません。

  • 非テンポラル表からテンポラル表へのレプリケーションはサポートされません。

  • システム期間表、バイテンポラル表、およびINSERTALLRECORDSパラメータを使用したSUPPRESSTEMPORALUPDATESのレプリケーションはサポートされません。

  • ターゲット表でBUSINESS_TIME WITHOUT OVERLAPSを使用してアプリケーション期間テンポラル表に一意索引が作成されている場合は、ソース表に対して同じ一意索引を作成する必要があります。

  • テンポラル表間の双方向レプリケーションが推奨されるのはデフォルトを使用する場合のみです。

  • CDRはSUPPRESSTEMPORALUPDATESでのみサポートされます。双方向レプリケーションでのCDRのサポートはありません。

  • デフォルトで、ソース・データベースとターゲット・データベースが異なるタイム・ゾーンで稼働している場合、テンポラル表の行開始列、行終了列およびトランザクション開始ID列に不整合が生じます。このようなシステム期間表とバイテンポラル表のタイムスタンプ列は、それぞれのデータベース・マネージャによって自動的に移入され、それぞれのデータベースのタイム・ゾーンに従って値が設定されます。

  • レプリケート・パラメータ・ファイル内にGETUPDATEBEFORESが指定されたデフォルトを使用すると、どのデルタ計算にも行開始列、行終了列およびトランザクション開始ID列を使用できません。たとえば、いかなる種類の計算でも、このような列の前イメージと後イメージを取得することはできません。これらの列をデルタ計算で使用するには、SUPPRESSTEMPORALUPDATESを使用します。

SUPPRESSTRIGGERS | NOSUPPRESSTRIGGERS

Oracleの統合ReplicatおよびクラシックReplicatに有効です。Replicatセッション中にトリガーが起動するかどうかを制御します。これは、手動でトリガーを無効化するかわりに使用できます。(統合Replicatでは、ターゲット・システムでのトリガーの無効化は必要ありません。)

SUPPRESSTRIGGERS(デフォルト)では、Oracle GoldenGateでのレプリケーション用に構成されたターゲット・オブジェクトでトリガーが発生しないようにします。SUPPRESSTRIGGERSは、Oracle Database 12c、11g (11.2.0.2)およびそれ以降の11g R2リリースに有効です。SUPPRESSTRIGGERSは11g R1では無効です。

特定のトリガーを起動できるようにするには、次のSQLEXEC文をReplicatパラメータ・ファイルで使用できます。このとき、trigger_ownerにはトリガーの所有者、trigger_nameにはトリガー名を指定します。

SQLEXEC 'DBMS_DDL.SET_TRIGGER_FIRING_PROPERTY('"S1"','"MY_TRIGGER"',FALSE);'

ノート:

このSQLEXECを一度FALSEで実行すると、TRUEを設定して再びコマンドを実行するまで、トリガーは起動し続けます。

NOSUPPRESSTRIGGERSでは、ターゲット・トリガーが起動できます。[NO]SUPPRESSTRIGGERSを使用するには、Replicatユーザーにdbms_goldengate_auth.grant_admin_privilegeパッケージで付与される権限が必要です。この手順は、Oracleデータベース・インストールの一部です。詳細は、データベースのマニュアルを参照してください。

USERIDまたはUSERIDALIASパラメータは、SUPPRESSTRIGGERSまたはNOSUPPRESSTRIGGERSを含むDBOPTIONS文よりも前に指定する必要があります。

TRANSNAME trans_name

SQL ServerのReplicatに有効です。パラメータ・ファイルに指定されている特定のトランザクション名を各Replicatで使用できるようにします。trans_nameは、ReplicatがターゲットのDMLトランザクションに対して使用するトランザクションの名前で、デフォルトのggs_replトランザクション名(使用されている場合)よりも優先されます。

USEODBC

SQL ServerのReplicatに有効です。

ReplicatにOLEDBを介したODBC接続の使用を強制します。OLEDBは、DSNがOLEDBドライバを使用して作成されている場合や、ODBCドライバを使用して作成されているがMicrosoft OLE DBドライバ・ソフトウェアがOracle GoldenGateサーバーにインストールされている場合に、デフォルトで選択されます。

USEODBCは、USEREPLICATIONUSERと組み合せて使用することはできません。

このパラメータ・オプションはLinux用のSQL Serverには使用できません。Linux用のOracle GoldenGateはODBCのみを使用するためです。

USEREPLICATIONUSER

SQL ServerのReplicatに有効です。

アイデンティティ列、トリガー、外部キー制約およびチェック制約に対して有効にする場合は、NOT FOR REPLICATIONオプションをサポートするようにReplicat接続を構成します。

USEREPLICATIONUSERを有効にすると、次のように影響します。

  • IDENTITYは、NOT FOR REPLICATIONオプションが有効にされているアイデンティティ列を持つ表に挿入されます。マルチマスター実装で、SET IDENTITY_INSERT句を設定せず、SELECT IDENT_CURRENT文を実行しないようにすると、パフォーマンスが向上します。

  • NOT FOR REPLICATIONオプションが有効にされている場合、外部キー制約およびチェック制約は実施されません。

  • NOT FOR REPLICATIONオプションが有効にされている場合は、ターゲット表でのトリガーの実行が抑制されます。トリガーを含むソース表およびトリガー操作の受信側表からのトランザクションをレプリケートするようにReplicatが構成されている場合は、この構成を使用します。

  • Microsoft ODBCドライバを使用するReplicat接続の場合は、USEREPLICATIONUSERオプションをサポートするために、Microsoft OLE DB Driver 18 for SQL Serverをインストールします。

    https://www.microsoft.com/en-us/download/details.aspx?id=56730

USEREPLICATIONUSERオプションを有効にするには、SQL ServerのNOT FOR REPLICATIONオプションを使用して、アイデンティティ列、トリガー、外部キー制約およびチェック制約を表内で有効にする必要があります。これらの考慮事項の詳細は、『異種データベースのためのOracle GoldenGateの使用』SQL Serverでサポートされているものの理解に関する項を参照してください。

デフォルトではUSEREPLICATIONUSERは無効にされており、USEODBCオプションとともに使用することはできません。

このパラメータ・オプションは、Linux用のSQL Serverには使用できません。

USEDATABASEENCODING

DB2 for iのExtractではデフォルトで、DBCS以外のデータの場合はすべてのテキスト・データがUTF-8に変換され、DBCSデータの場合はUTF-16に変換されます。このオプションを使用すると、ExtractはDBCS以外のデータのすべてのテキスト・データをネイティブ文字エンコーディングでトレイルに格納します。現在、DBCS (GRAPHIC/VARGRAPHIC/DBCLOB)データは、このパラメータが指定されているかどうかに関係なく、UTF-16に引き続き変換されます。Oracle GoldenGateでサポートされていないCCSID値の場合、Extractは、DBCS以外のデータの場合はデータをUTF-8に、DBCSデータの場合はUTF-16に変換し、すべてのReplicatの互換性を確保します。

XMLBUFSIZE bytes

OracleのExtractに有効です。SDO_GEORASTERオブジェクト・タイプのsys.xmltype属性から抽出されたXMLデータを保持するメモリー・バッファのサイズを設定します。デフォルトは1048576バイト(1MB)です。データがデフォルトのバッファ・サイズを超えると、Extractは異常終了します。その場合は、バッファ・サイズを増やしてから、Extractを再起動してください。有効な値の範囲は、1024から104857600バイトです。

例1   
DBOPTIONS HOST 127.0.0.1, CONNECTIONPORT 3307
例2   
DBOPTIONS DECRYPTPASSWORD AACAAAAAAAAAAAIALCKDZIRHOJBHOJUH ENCRYPTKEY DEFAULT
例3   
DBOPTIONS TDSPACKETSIZE 2048
例4   
DBOPTIONS FETCHBATCHSIZE 2000
例5   
DBOOPTION XMLBUFSIZE 2097152