SEQUENCE
適用対象
Extract
説明
SEQUENCEパラメータでは、順序値をトランザクション・ログから取得します。現在Oracle GoldenGateは、Oracleデータベースで順序をサポートしています。
注意:
順序のDDLサポート(CREATE、ALTER、DROP、RENAME)は、順序値のレプリケートと互換性がありますが、順序値のレプリケートには必要ありません。順序値のレプリケートのみを行う場合、Oracle GoldenGate DDLサポート環境をインストールする必要はありません。SEQUENCEパラメータのみを使用して実行できます。
Oracle GoldenGateは、ターゲットの順序値が次のようになることを保証します。
-
増分間隔が正の数の場合、ソース値より高い
-
増分間隔が負の数の場合、ソース値より低い
Replicatは挿入を実行するときに、増分方向に応じて、次のいずれかの公式をテストとして適用します。
source_highwater_value+ (source_cache_size*source_increment_size) =target_highwater_value
または
source_highwater_value+ (source_cache_size*source_increment_size) >=target_highwater_value
この公式がFALSEと評価される場合、ターゲットの順序は(順序が増分されるときは)ソース値よりも高い値に更新され、(順序が減分されるときは)ソース値よりも低い値に更新されます。ターゲットは、常にこの公式のカッコ内の式以上の値である必要があります。たとえば、ソースの最大値が40で、CACHEが20の場合、ターゲットの最大値は少なくとも60になるようにします。
40 + (20*1) <60
ターゲットの最大値が80未満の場合、ターゲットがソースの前になるように、Oracle GoldenGateは順序を更新して最大値を上げます。現在の最大値を取得するには、次の問合せを実行します。
SELECT last_number FROM all_sequences WHERE sequence_owner=upper('SEQUENCEOWNER') AND sequence_name=upper('SEQUENCENAME');サポートされている処理モード
順序の取得をサポートしている処理モードは、次のとおりです。
-
Oracle GoldenGateは、アクティブ/パッシブ高可用性構成で順序をサポートしています。Oracle GoldenGateは、アクティブ/アクティブ構成での順序値のレプリケーションはサポートしていません。アクティブ/パッシブ構成には両方のサーバーにプライマリExtract、データ・ポンプおよびReplicatが含まれますが、プロセスは一方向でのみアクティブです。フェイルオーバー・サーバー上のExtractプロセスは非アクティブである必要があり、順序の取得は含まれません。Oracle GoldenGateの高可用性を構成する方法の詳細は、『Oracle GoldenGateの管理』を参照してください。
-
データ・ポンプに書き込むプライマリExtractに
SEQUENCEを使用する場合、データ・ポンプでも同一のSEQUENCEパラメータを使用する必要があります。 -
SOURCEISTABLEパラメータが、Extractパラメータとして、またはADD EXTRACT内に含まれるOracle GoldenGate初期ロード方式では、順序値のレプリケーションはサポートされていません。
SEQUENCE使用のガイドライン
-
ソースおよびターゲットの順序のキャッシュ・サイズおよび増分間隔は、同一である必要があります。
-
キャッシュは0を含む任意のサイズにできます(
NOCACHE)。 -
順序は、循環を有効または無効に設定できますが、ソース・データベースとターゲット・データベースの設定は同一にする必要があります。
-
DDLサポートが有効化されている構成に
SEQUENCEを追加するには、INITIALSETUPモードでOracle GoldenGate DDLオブジェクトを再インストールする必要があります。
エラー処理
-
Extractは、順序名を解決できない場合、操作を無視します。
-
Replicatによる順序のエラー処理を有効化するには、
REPERRORパラメータを使用します。このパラメータは、MAPパラメータのオプションとしても、単独のパラメータとしても使用できます。REPERRORは、ターゲットで順序が削除されたかどうかを検出できるので、このパラメータを使用して順序が再作成されるまで順序操作を再試行できます。 -
REPERRORは、起動時に紛失したオブジェクトを処理しません。DDLERRORとIGNOREMISSINGTABLESを使用してください。
その他の重要情報
-
データベースによる順序の維持手法にギャップは固有で、発生が予想されるため、Oracle GoldenGateがレプリケートする順序値にはギャップが存在する可能性があります。ただし、ターゲット値は常にソース値より大きくなります。
-
ExtractがRACシステム上でシングルスレッド・モードで実行中で、ラグがあるノード上で順序が更新された場合、順序の取得に時間がかかる場合があります。これは正常な動作です。
-
フェイルオーバーでは、トランザクション・ログまたはOracle GoldenGateトレイル・ファイルのデータの損失または破損を引き起こす問題が発生すると、レプリケートされた順序の更新値が失われます。
-
SEND EXTRACTおよびSEND REPLICATをREPORTオプションとともに使用するときに表示される統計には、順序操作はUPDATEとして表示されます。
デフォルト
なし
構文
SEQUENCE [container.]schema.sequence;
-
[container.]schema.sequence -
ソース順序の完全修飾名を指定します。ソースがOracleコンテナ・データベースである場合、プラガブル・データベースの名前を含めます。オブジェクト名やワイルドカードを正しく指定するには、『Oracle GoldenGateの管理』を参照してください。
-
; -
SEQUENCEパラメータ文を終了します。
例
SEQUENCE hr.employees_seq;
親トピック: Oracle GoldenGateパラメータ