CDCサプリメンタル・ロギングの有効化

CDC Extractでは、変更データを取得する方法としてSQL Serverチェンジ・データ・キャプチャ表が使用されるため、次の手順と要件に従い、Extractによって変更データが正しくロギング、保持および取得されるようにすることが重要です。

ADD TRANDATAコマンドでサプリメンタル・ロギングを有効にすると、トランザクションの再構築に必要な情報をExtractで取得できます。

ADD TRANDATAは、Oracle GoldenGateにより取得されるすべての表に対して発行する必要があり、そのためには、有効なスキーマを使用して、必要なOracle GoldenGateの表およびストアド・プロシージャを作成する必要があります。

CDC Extractのサプリメンタル・ロギングを有効にするには、次の手順を行います。

  • SQL Serverチェンジ・データ・キャプチャをデータベース・レベルで有効にします(まだ有効になっていない場合)。

    • EXECUTE sys.sp_cdc_enable_db

  • EXECUTE sys.sp_cdc_enable_tableを実行することで、ベース表ごとにサプリメンタル・ロギングが有効なチェンジ・データ・キャプチャ・ステージング表を作成します。また、CDC表ごとにトリガーを作成します。CDC表は、データベース内のシステム表の一部として存在し、cdc.OracleGG_basetableobjectid_CTのようなネーミング規則を持っています。

  • ネーミング規則がschema.OracleGGTranTablesのトラッキング表を作成します。この表を使用してCDC表のトランザクション・インジケータが格納され、CDC表のトリガーが起動されたときにこの表に移入されます。表はGLOBALSファイルのGGSCHEMAパラメータにリストされたスキーマによって所有されます。

  • 各CDC表に対して一意のフェッチ・ストアド・プロシージャを作成し、さらにExtractが機能するために必要なその他のストアド・プロシージャも作成します。ストアド・プロシージャは、GLOBALSファイルのGGSCHEMAパラメータにリストされたスキーマによって所有されます。

  • また、表に対するCDCの有効化の一環として、SQL Serverではデータベースごとに2つのジョブを作成します。

    cdc.dbname_capture

    cdc.dbname_cleanup

  • CDCキャプチャ・ジョブはSQL Serverのトランザクション・ログを読み取ってCDC表にデータを移入し、これらのCDC表からExtractはトランザクションを取得します。したがって、CDCキャプチャ・ジョブが常に実行されていることが非常に重要です。そのためには、SQL Serverエージェントが常に実行され、SQL Serverの起動時に自動的に実行できるように設定されている必要があります。

  • CDCキャプチャ・ジョブの重要なチューニング情報は、CDCキャプチャ方法の操作に関する考慮事項にあります。

  • Microsoftによって作成されるCDCクリーンアップ・ジョブは、Oracle GoldenGate ExtractがCDC表のデータを取得済であるかどうかに依存しません。そのため、追加のステップを行って、TRANDATAを有効にした直後にCDCクリーンアップ・ジョブを無効にするか削除し、Oracle GoldenGate専用のCDCクリーンアップ・ジョブを有効にする必要があります。詳細はCDC表の履歴データの保持を参照してください。

次のステップでは、SQL Serverのシステム管理者(sysadmin)ロールのメンバーであるデータベース・ユーザーが必要です。

  1. ソースOracle GoldenGateインストールで、GLOBALS (すべて大文字で拡張子なし)ファイルがGGSCHEMA schemanameパラメータで作成されていることを確認します。ソース・データベースで使用されているスキーマ名(CREATE SCHEMA schemaname)が作成されていることを確認します。このスキーマは、データベースで作成される後続のすべてのOracle GoldenGateコンポーネントで使用されるため、Oracle GoldenGateのみで使用される一意のスキーマ(‘ogg’など)を作成することをお薦めしますSQL Serverスキーマcdcを使用せず、Oracle GoldenGateに固有の新しいスキーマを作成することをお薦めします。
  2. ソース・システムで、GGSCIを実行します
  3. 次のコマンドを発行してデータベースにログインします。
    DBLOGIN SOURCEDB DSN [,{USERID user, PASSWORD password | USERIDALIAS alias}]

    説明:

    • SOURCEDB DSNは、SQL Serverデータソースの名前です。

    • USERID userはデータベース・ログイン、PASSWORD passwordはSQL Server認証を使用するデータ・ソース接続の場合に必要なパスワードです。または、資格証明が資格証明ストアに格納されている場合、USERIDALIAS aliasは、資格証明の別名です。 統合Windows認証を使用するDSNにDBLOGINを使用する場合、GGSCIセッションのデータベースへの接続は、GGSCIを実行しているユーザーによるものになります。 ADD TRANDATAまたはDELETE TRANDATAを発行するには、このユーザーは、SQL Server sysadminサーバー・ロールのメンバーである必要があります。

  4. GGSCIで、Extract構成内にある個々の表に対して次のコマンドを発行します。 ワイルドカードを使用して複数の表の名前を指定できます

    ADD TRANDATA owner.table

    ADD TRANDATA owner.*

    オプションで、SQL Serverチェンジ・データ・キャプチャのステージング表を配置するファイルグループを指定できます。その場合は、既存のファイルグループ名を指定したFILEGROUPオプションを使用します。

    ADD TRANDATA owner.table FILEGROUP cdctables

    ADD TRANDATAを参照してください。