CDCキャプチャ方法の操作に関する考慮事項
SQL Server CDCキャプチャのオプション、機能および推奨設定について学習します。
SQL Serverのチェンジ・データ・キャプチャのチューニング
次の情報は、Extractのキャプチャ・パフォーマンスの向上に役立ちます。
-
リモート・デプロイメントでは、ネットワーク・レイテンシが低いことが重要であるため、Oracle GoldenGateサーバーとソース・データベース・サーバーの間のネットワーク・レイテンシは1ミリ秒未満にすることをお薦めします。
-
データベースに対して「Auto Create Statistics」および「Auto Update Statistics」が有効になっていることを確認します。
cdc.OracleGG_#####_CT tables、cdc.lsn_time_mapping tableおよびOracleGGTranTables表の統計のメンテナンスは、Extractのパフォーマンスおよびレイテンシにとって非常に重要です。 -
SQL Serverチェンジ・データ・キャプチャ・ジョブは、SQL Serverのトランザクション・ログからデータを収集し、データベース内のチェンジ・データ・キャプチャ・ステージング表にロードします。
作成されるジョブの一部として、いくつかのチューニング・パラメータを使用できます。ジョブを最適にチューニングする方法の詳細は、次の記事を参照してください。 https://technet.microsoft.com/en-us/library/dd266396(v=sql.100).aspx
一般的な推奨事項として、SQL Serverチェンジ・データ・キャプチャ・ジョブのポーリング間隔をデフォルトの5秒から1秒に変更することをお薦めします。
CDCキャプチャ・ジョブのデフォルトのポーリング間隔を変更するには、データベースに対して次の問合せを実行します。
EXEC [sys].[sp_cdc_change_job] @job_type = N'capture', @pollinginterval = 1, GO, --stops cdc job EXEC [sys].[sp_cdc_stop_job], @job_type = N'capture', GO, --restarts cdc job for new polling interval to take affect EXEC [sys].[sp_cdc_start_job], @job_type = N'capture',
Oracle GoldenGate CDCオブジェクトのバージョニング
Oracle GoldenGateには、サプリメンタル・ロギングを有効化するときにOracle GoldenGateによって作成されるCDCオブジェクトをトラッキングするための、バージョン・トラッキング・サブシステムが備わっています。この種のオブジェクトは、次のとおりです。
-
OracleGG_object id_CT.形式のOracle GoldenGateチェンジ・トラッキング表 -
fetch_database name_object idという形式のストアド・ファンクション -
OracleCDCExtract、OracleGGCreateProcsおよびOracleGGCreateNextBatchの各ストアド・プロシージャ。 -
ADD TRANDATAコマンドが正常に完了すると、Oracle GoldenGateは、GLOBALSファイルに指定されているGGSCHEMAの下にOracleGGVersionという表を作成します(まだ存在しない場合)。次に、Oracle GoldenGateは、
TRANDATAセッションの開始時刻と終了時刻を追跡するレコードを表に挿入します。Extractが起動するとき、内部的なバージョン番号と、OracleGGVersion表に含まれるバージョン番号を比較することによって、それ自体とOracle GoldenGate CDCオブジェクトの一貫性が確認されます。バージョン番号が一致しない場合は、次のようなメッセージで異常終了します。ERROR OGG-05337 The Oracle GoldenGate CDC object versions on database, source, are not consistent with the expected version, 6. The following versions(s) were found: 3. Rerun ADD TRANDATA for all tables previously enabled, including heartbeat, heartbeat seed, and filter tables.
SQL Serverチェンジ・データ・キャプチャでサポートされているExtractのパラメータとサポートされていないパラメータ
CDC Extractで使用されるパラメータについて学習します。次の表に、サポートされているパラメータとサポートされていないパラメータを示します。
| サポートされているパラメータ | サポートされないパラメータ |
|---|---|
TRANLOGOPTIONS |
TRANLOGOPTIONS MANAGESECONDARYTRUNCATIONPOINT/NOMANAGESECONDARYTRUNCATIONPOINT/ACTIVESECONDARYTRUNCATIONPOINT |
ALWAYSONREADONLYROUTING |
- |
TRANLOGOPTIONS LOB_CHUNK_SIZE |
- |
TRANLOGOPTIONS MANAGECDCCLEANUP/NOMANAGECDCCLEANUPTRANLOGOPTIONS |
- |
TRANLOGOPTIONS QUERYTIMEOUT |
- |
TRANLOGOPTIONS TRANCOUNT |
- |
トランザクション・オプション LOB_CHUNK_SIZE
ラージ・オブジェクトをサポートするために、ExtractパラメータLOB_CHUNK_SIZEがCDCキャプチャ方法に追加されました。大きいLOBデータ・サイズの場合、LOB_CHUNK_SIZEをデフォルトの4000バイトから最大65535バイトまで調整できるため、フェッチ・サイズを大きくして、LOB全体をフェッチするために必要なトリップ回数を削減します。
例: TRANLOGOPTIONS LOB_CHUNK_SIZE 8000
TRANLOGOPTIONS MANAGECDCCLEANUP/NOMANAGECDCCLEANUP
ExtractパラメータMANAGECDCCLEANUP/NOMANAGECDCCLEANUPは、Oracle GoldenGate CDCクリーンアップ・ジョブでリカバリ・チェックポイント・データを維持するかどうかをExtractに対して指示するために、CDCキャプチャ方法で使用されます。リカバリ・チェックポイントは維持されますが、SQL Server CDCクリーン・アップ・ジョブも有効になっていない場合、ct表のパージは実行されません。これはパージに必要です。
デフォルト値はMANAGECDCCLEANUPです。これは明示的にExtractにリストする必要はありません。ただし、Extractを起動する前にOracle GoldenGate CDCクリーンアップ・ジョブを作成する必要があります。MANAGECDCCLEANUPはすべての本番環境で使用する必要があります。NOMANAGECDCCLEANUPは必要に応じて一時的な実装またはテスト実装で使用できます。
例: TRANLOGOPTIONS MANAGECDCCLEANUP
TRANLOGOPTIONS EXCLUDEUSER/EXCLUDETRANS
SQL ServerのCDCキャプチャ・ジョブは、ユーザー情報またはトランザクションに関連付けられたトランザクション名は取得しません。この情報はCDCステージング表のログに記録されないため、Extractでは特定のユーザーのDMLまたは特定のトランザクション名のDMLを除外できません。したがって、 EXCLUDEUSERおよびEXCLUDETRANSパラメータはCDCキャプチャ処理では無効です。
TRANLOGOPTIONS管理条件切捨てポイント/NOMANAGES条件切捨てポイント/アクティビティ条件切捨てポイント
SQL Serverチェンジ・データ・キャプチャ・ジョブは、Oracle GoldenGate CDCキャプチャ方法を使用する場合にトランザクション・ログからデータをキャプチャする唯一のプロセスである。2次切捨てポイントの管理はExtractでは処理されません。また、チェンジ・データ・キャプチャのExtractの場合、これらのパラメータは無効です。
トランザクション・オプションALWAYSONREADONLYROUTING
ALWAYSONREADONLYROUTINGパラメータを使用すると、SQL Server用のExtractでは、Always On可用性グループ・リスナーに接続しているときに、その読取り専用処理を使用可能な読取り専用セカンダリにルーティングすることができます。
TRANLOGOPTIONS問合せタイムアウト
SQL Serverへの問合せで、タイムアウト・エラー・メッセージを報告するまでに結果を待機する時間を指定します。このオプションは整数値を使用して秒数を表します。デフォルトの問合せタイムアウト値は300秒(5分)です。最小値は0秒です(無限タイムアウト)。最大値は2147483645秒です。
TRANLOGOPTIONSトランザクション数
SQL Serverのチェンジ・データ・キャプチャのステージング表からデータをプルするための、Extractによる1コール当たりの処理されるトランザクションの数を調整できます。トランザクション・ワークロードに基づいて、この値を調整すると、キャプチャ率のスループットが向上する可能性がありますが、すべてのワークロードがよい影響を受けるわけではありません。最小値は1、最大値は100です。デフォルトは10です。
Oracle GoldenGate CDCクリーンアップ・プロセスの詳細
Oracle GoldenGateのチェンジ・データのパージタスクは、デフォルトで、CDC Extractに必要になります(ExtractがデフォルトでTRANLOGOPTIONS MANAGECDCCLEANUPに設定されているため)。
CDCキャプチャでは、データベースごとにパージ・タスクが1つのみ有効になっている必要があります。また、このドキュメントの「Oracle GoldenGateのためのデータベースの準備」の項に記載されているステップを使用してタスクを作成する必要があります。
Oracle GoldenGateのチェンジ・データのパージタスクの変更
デフォルトのパージ・タスク頻度スケジュールは10分単位の実行であり、Oracle GoldenGateのチェンジ・データのパージタスクのデータ保存期間は、インストールされているOracle GoldenGateのバージョンに応じて3日か1時間のデータ保存ポリシーとなります。
顧客固有の要件のために、保持期間(「ルールの保持」オプション)およびタスク実行時スケジュール(「パージ頻度」オプション)を調整する必要がある場合があります。
「ルールの保持」オプションにより、ソース・データベースに保持するCDCステージング・データの量(時間数か日数)が決まります。デフォルト値は、インストールされているOracle GoldenGateのバージョンに応じて、3日か1時間になります。CDCデータの保存期間を短くすると、データベースに格納されるCDCステージング・データの量が減りますが、ユーザーがExtractをステージング表内のあるデータより前の時点に戻すことができる可能性が狭まります。通常は、既存のExtractを以前の時点に戻す必要はありません。そのため、より多くのステージング・データをデータベース内に残す必要がある特殊な状況の場合を除き、新しいデフォルト設定である1時間を使用することをお薦めします。ただし、この値を長い保存期間から非常に短い保存期間に変更すると、次回のタスク・スケジュール実行時に大量のトランザクション・ログ領域とシステム・オーバーヘッドが必要になる可能性があることに注意してください。したがって、目的の終了値に達するまで、時間の経過とともにKeep Rule値をゆっくり減らすことをお薦めします。
「パージ頻度」は、タスクの実行頻度を表します。デフォルトは10分ごとです。ユーザー・アクティビティが多い期間にパージ・タスクによるオーバーヘッドがデータベース・パフォーマンスに影響する場合を除き、デフォルト値のままにすることをお薦めします。
既存のチェンジ・データのパージ・タスクを変更するには、Administration Serviceの左側にあるメニューから「構成」に移動して、「構成」ページを開きます。1. 「構成」ページの「タスク」をクリックして、「タスク」ページを開きます。
-
「タスク」ページで「チェンジ・データのパージ」をクリックします。
-
既存のタスクの横にある「タスクの変更」アイコンをクリックします。
-
必要に応じて、「ルールの保持」オプションや「パージ頻度」オプションの値を変更します。
-
変更内容を保存するには、「送信」をクリックします。
Oracle GoldenGateのチェンジ・データのパージタスクの削除
データベースのチェンジ・データのパージタスクの削除は、その特定のデータベースに対するキャプチャが構成されているExtractがない場合にのみ実行されるようにする必要があります。
既存のチェンジ・データのパージ・タスクを削除するには、Administration Serviceの左側にあるメニューから「構成」オプションに移動して、「構成」ページを開きます。「構成」ページの「タスク」をクリックして、「タスク」ページを開きます。
-
「タスク」ページで「チェンジ・データのパージ」をクリックします。
-
削除するタスクの横にある「タスクの削除」アイコンをクリックします。
クラシックExtractからCDC Extractへの更新
Oracle GoldenGate 12c (12.3.0.1)以前のクラシックExtractからOracle GoldenGate 26ai CDC Extractへの変更を予定している場合は、クラシックExtractのインストール方法を使用して実装したサプリメンタル・ロギングを削除する必要があります。また、CDC Extractのインストール・バイナリを使用してサプリメンタル・ロギングを再度有効にするには、この2つのバージョンでTRANDATAを有効にするコールが異なり、CDC ExtractでクラシックExtractのTRANDATAの実装がサポートされないためです。
次の一般的なガイドラインに従ってサプリメンタル・ロギングを削除してから再度有効にしてください。本番システムでクラシックからCDC Extractに移行する場合は、特別な配慮とプランニングが必要です。ここに示す情報は、すべての要件について説明するものではありません。サプリメンタル・ロギングに関する一般的な要件としてのみ提供される情報です。
-
ログに残ったすべてのデータがクラシックExtractによって処理されていて、正常に停止できることを確認します。
-
その他のレプリケーション・コンポーネントまたはCDCコンポーネントに関してExtractを実行した方法によって、次のいずれかを実行します。
-
Extractが、同じデータベース上でSQL Serverトランザクション・レプリケーションまたはOracle以外のCDC構成と平行で同時に実行されなかった場合は、Management Studioで問合せセッションを開いてソース・データベースに対し次の文を発行し、すべてのCDCまたはレプリケーション・コンポーネントを無効にして削除し、2次切捨てポイントを消去します。
EXEC sys.sp_cdc_disable_db -
Extractが同じデータベースに対してSQL Serverトランザクション・レプリケーションまたはOracle以外のCDC構成と並行して実行されていた場合は、クラシックExtractのインストール・フォルダからAdmin Clientを実行し、
DBLOGINを使用してソース・データベースにログインし、Extract構成に含まれる表ごとに次のコマンドを発行します。ワイルドカードを使用して複数の表の名前を指定できますDELETE TRANDATA owner.tableDELETE TRANDATA owner.*
-
-
ハートビート表エントリがインストールされていた場合は削除します。
DELETE HEARTBEATTABLE -
Oracle GoldenGateのCDC Extractインストール・バイナリを使用し、「Oracle GoldenGateのためのデータベースの準備」のステップに従って、サプリメンタル・ロギングおよびその他の必要なコンポーネントを再度有効にし、ハートビート表を再度追加します。