SQL Serverの正確なインスタンス化
Oracle GoldenGate 23.8以降では、SQL Serverの初期ロードExtractを使用して正確なインスタンス化を編成できます。正確なインスタンス化方法では、ソース・データベースからターゲット・データベースへのデータの初期ロードが可能で、ソース・データベースはアプリケーションの更新のためにオンラインのままです。この方法により、ターゲット・データベースに重複データを持たず、ReplicatでHANDLECOLLISIONSを使用する必要なく、変更データの取得および配信プロセスを正確に配置できます。
Oracle GoldenGate for SQL Serverの正確なインスタンス化では、スナップショット分離を許可するようにソースSQL Serverデータベースを設定し、初期ロードExtract内でINITIALLOADOPTIONS USESNAPSHOTパラメータを使用する必要があります。この方法は、サポートされている任意のSQL Serverソース・データベースからサポートされているターゲット・データベースをインスタンス化するために使用できます。
次に、ソース・インスタンスからのスキーマ・ダンプを使用してターゲット・インスタンスにロードし、その後に変更データ・レプリケーション用のOracle GoldenGateの構成を使用した正確なインスタンス化方法の例を示します。
-
ソース・データベース表への
ADD TRANDATA。DBLOGIN USERIDALIAS src_aliasADD TRANDATA dbo.* -
TRANDATAが完了したら、データベースがスナップショット分離に対して有効になっていることを確認し、有効になっていない場合は手動で有効にします。
ALTER DATABASE tpcc_source SET ALLOW_SNAPSHOT_ISOLATION ON; -
Microservices Architectureの場合は、WebUIにCDCデータのパージ・タスクを追加します。詳細は、CDCステージング・データのパージおよびプロセスのパージを参照してください。
-
INITIALLOADOPTIONS USESNAPSHOTパラメータを使用して初期ロードExtractを作成します。ADD EXTRACT einit, SOURCEISTABLE--Sample Initial Load Extract Parameter File: EXTRACT einit USERIDALIAS tpcc_source2017 INITIALLOADOPTIONS USESNAPSHOT EXTFILE ei, MEGABYTES 500, PURGE TABLE dbo.*; -
「初期ロードExtract」を起動します。
START EXTRACT einit -
初期ロードExtractが完了して停止したら、レポート・ファイルを表示して、CDC Extractの作成時に使用される次のようなメッセージを探します。
VIEW REPORT einitINFO OGG-05381 A consistent point is established in database 'tpcc_source' at LSN 0x00000488:00002a98:0002. OGG-05379 Create or position a Change Data Capture Extract to LSN 0x00000488:00002a98:0002. Example: ADD EXTRACT <extract-name> TRANLOG LSN 0x00000488:00002a98:0002 or ALTER EXTRACT <extract-name> LSN 0x00000488:00002a98:0002 -
スナップショットの分離を許可するソース・データベース・オプションは、ステップ2で手動で有効にした場合、OFFに戻すことができます。
ALTER DATABASE tpcc_source SET ALLOW_SNAPSHOT_ISOLATION OFF; -
初期ロードExtractのレポート・ファイルのLSN出力を使用してCDC Extractを作成します。
ADD EXTRACT extcdc TRANLOG LSN 0x00000488:00002a98:0002ADD EXTTRAIL ea, EXTRACT extcdc -
初期ロードExtractによって作成された証跡から読み取る初期ロードReplicatを作成して起動します。
ADD REPLICAT rinit, PARALLEL, EXTTRAIL ei, CHECKPOINTTABLE ggadmin.ggcheckSTART rinit--Sample Initial Load Replicat Parameter file REPLICAT rinit USERIDALIAS tgt_alias BATCHSQL SPLIT_TRANS_RECS 100000 MAP dbo.*, TARGET dbo.*; -
初期ロードReplicatが処理を終了したら、CDC Extractによって作成された証跡から読み取るCDC Replicatを作成して起動します。
ADD REPLICAT repcd, PARALLEL, EXTTRAIL ea, CHECKPOINTTABLE ggadmin.ggcheckSTART EXTRACT extcdcSTART REPLICAT repcd