20 Microservices ArchitectureでのファイルからReplicatへのデータのロード
このトピックで説明されている手順に従うことにより、ファイルベース初期ロードと変更データ・キャプチャ(CDC)プロセスの組合せを使用し、データを損失することなく、データをソース・データベースからターゲット・データベースに正確にレプリケートできます。
-
初期ロード: ソース・データベースからターゲット・データベースに1つ以上の表の既存の内容をコピーする場合に使用します。
-
変更データ・キャプチャ: ソース・データベースからターゲット・データベースにトランザクション変更をコピーする場合に使用します。
注意:
MAでは、Oracle GoldenGateダイレクト・ロードを使用したデータのロードをサポートしていません。ファイルベースの初期ロード・プロセスはMAでデータ・レプリケーションを実行するための優先方法です。主なコンポーネントは次のとおりです。
-
初期ロードExtractおよびReplicat: データベース表の既存の内容をレプリケートします。
-
プライマリExtractおよびReplicat: データベース表のデータ変更をレプリケートします。
-
分散パス: 証跡ファイルをターゲット・システムに転送します。
開始する前に、データベース資格証明の別名が作成されていることを確認してください。
重要:
このトピックでは、AdminClientを使用して、初期ロード処理手順を示します。ただし、curlを使用してこれらの手順を実行することもできます。手順1: プライマリExtractの作成
注意:
正確なインスタンス化が動作するには、インスタンス化SCNを登録SCNより後にする必要があります。-
プライマリExtractが起動されます。これは変更データ・キャプチャを行い、登録SCNではありません。
-
データベースは監視されます。データベースは、最も古いオープン・トランザクションのSCNが登録SCNの後に来るまで待機します。これは、インスタンス化SCNです。
-
インスタンス化SCNは、初期ロードExtractおよびReplicatプロセスを作成する際に使用されます。
-
初期ロード・レプリケーションが完了すると、インスタンス化SCNがプライマリReplicatを作成するために使用されます。
開始するには、AdminClientからプライマリExtract EXTPRIM
を作成して起動します。次に例を示します。
OGG (not connected) 1> connect https://phoenix.oggdevops.us:9100 as oggadmin password oggadmin !
Using default deployment 'Phoenix'
OGG (https://phoenix.oggdevops.us:9100 Phoenix) 2> dblogin useridalias oggadmin
Successfully logged into database.
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 3> add extract EXTPRIM integrated tranlog begin now
2018-03-16T13:37:07Z INFO OGG-08100 EXTRACT (Integrated) added.
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 4> register extract EXTPRIM database
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 5> edit params EXTPRIM
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 6> view params EXTPRIM
--
-- E X T P R I M . p r m
-- Primary Extract Parameter File
--
Extract EXTPRIM
UseridAlias oggadmin
ExtTrail AA
Table user01.*;
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 7> add exttrail AA extract EXTPRIM
2018-03-16T13:37:55Z INFO OGG-08100 EXTTRAIL added.
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 8> start extract EXTPRIM
2018-03-16T13:38:02Z INFO OGG-00975 EXTRACT EXTPRIM starting
2018-03-16T13:38:02Z INFO OGG-15426 EXTRACT EXTPRIM started
この例では、oggadmin
はデータベース資格証明の別名です。
プライマリExtractを作成した後、SCN登録番号を取得します。AdminClientでREGISTER EXTRACT
コマンドを実行します。次の例では、1608891のSCN値を取得します。
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 4> register extract EXTPRIM database
2018-03-16T13:37:30Z INFO OGG-02003 Extract EXTPRIM successfully registered with database at SCN 1608891.
手順2: インスタンス化SCNの決定
管理サーバーは、すべてのアクティブ・トランザクションおよび現在のデータベースSCNの詳細を返すエンドポイントを公開します。このデータを取得するPL/SQL問合せは次のとおりです。
-- Query for active transactions
--
Select T.START_SCN, T.STATUS TSTATUS, T.START_DATE,
S.SID, S.SERIAL#, S.INST_ID, S.USERNAME, S.OSUSER, S.STATUS SSTATUS, S.LOGON_TIME
From gv$transaction T
Inner
Join gv$session S
on S.SADDR = T.SES_ADDR
Union All
--
-- Query for current status
--
Select current_scn, 'CURRENT', CURRENT_DATE,
NULL, NULL, NULL, 'SYS', NULL, NULL, NULL
from v$database
Order by 1;
この問合せの結果は、インスタンス化SCNを決定するために使用できます。この問合せの結果は次のとおりです。
1538916 ACTIVE 2018-03-16 18:10:31.0 3865 9176 1 GGADMIN oracle INACTIVE 2018-03-16 18:10:26.0 1540555 CURRENT 2018-03-16 18:21:50.0 SYS
初期ロードExtractをインスタンス化するために使用されるSCNは、SQL*Plusを使用して取得されます。次の例では、SQL問合せでインスタンス化SCN値を1624963
として使用します。これは、すべてのオープン・トランザクションの中で最も古いSCNであり、1608891
の過去の登録SCNでもあります。
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 14> shell echo 'Select MIN(START_SCN) From gv$transaction;' | ${ORACLE_HOME}/bin/sqlplus -S / as sysdba
MIN(START_SCN)
--------------
1624963
オープン・トランザクションがない場合、このSQL問合せは空の結果を返します。オープン・トランザクションがない場合を考慮する詳細な問合せは、次のとおりです。
Select MIN(SCN) as INSTANTIATION_SCN
From (Select MIN(START_SCN) as SCN
From gv$transaction
Union All
Select current_scn
From gv$database);
手順3: 初期ロードReplicatの作成および起動
この手順を開始する前に、チェックポイント表oggadmin.checkpoints
がすでにターゲット・システムに存在することを確認します。初期ロードReplicatはターゲット・データベースへの移入を行います。AdminClientで次のコマンドを実行して、初期ロードReplicat (REPINIT
)を作成して起動します。
OGG (not connected) 1> connect https://dallas.oggdevops.us:9100 as oggadmin password oggadmin !
Using default deployment 'Dallas'
OGG (https://dallas.oggdevops.us:9100 Dallas) 2> dblogin useridalias oggadmin
Successfully logged into database.
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 3> add checkpointtable oggadmin.checkpoints
ADD "oggadmin.checkpoints" succeeded.
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 4> add replicat REPINIT exttrail DD checkpointtable oggadmin.checkpoints
2018-03-16T13:56:41Z INFO OGG-08100 REPLICAT added.
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 5> edit params REPINIT
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 6> view params REPINIT
--
-- R E P I N I T . p r m
-- File-Based Initial Load Replicat Parameter File
--
Replicat REPINIT
UseridAlias oggadmin
Map user01.*
Target user01.*;
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 7> start replicat REPINIT
2018-03-16T13:58:21Z INFO OGG-00975 REPLICAT REPINIT starting
2018-03-16T13:58:21Z INFO OGG-15426 REPLICAT REPINIT started
手順4: 初期ロードExtractの作成および起動
取得したインスタンス化SCN (1624963
)を使用して、初期ロードExtractを作成してデータベース表の内容を証跡に書き込みます。
初期ロードExtract EXTINIT
を作成して起動します。
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 15> add extract EXTINIT sourceistable
2018-03-16T14:08:38Z INFO OGG-08100 EXTRACT added.
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 16> edit params EXTINIT
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 17> view params EXTINIT
--
-- E X T I N I T . p r m
-- File-Based Initial Load Extract Parameter File
--
Extract EXTINIT
UseridAlias oggadmin
ExtFile CC Megabytes 2000 Purge
Table user01.*, SQLPredicate "As Of SCN 1609723";
OGG (https://phoenix.oggdevops.us:9100 Phoenix as oggadmin) 18> start extract EXTINIT
2018-03-16T14:13:42Z INFO OGG-00975 EXTRACT EXTINIT starting
2018-03-16T14:13:42Z INFO OGG-15426 EXTRACT EXTINIT started
手順5: 分散パスの作成
AdminClientからリモート・ホストに対してローカル証跡をコピーするための2つの分散パス(AABB
およびCCDD
)を作成します。
OGG (https://phoenix.oggdevops.us:9100 Phoenix) 15> add distpath AABB source trail://phoenix.oggdevops.us:9102/services/v2/sources?trail=AA target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=BB
2018-03-16T17:28:27Z INFO OGG-08511 The path 'AABB' has been added.
OGG (https://phoenix.oggdevops.us:9100 Phoenix) 16> add distpath CCDD source trail://phoenix.oggdevops.us:9102/services/v2/sources?trail=CC target wss://dallas.oggdevops.us:9103/services/v2/targets?trail=DD
2018-03-16T17:28:35Z INFO OGG-08511 The path 'CCDD' has been added.
OGG (https://phoenix.oggdevops.us:9100 Phoenix) 17> start distpath AABB
2018-03-16T17:28:42Z INFO OGG-08513 The path 'AABB' has been started.
OGG (https://phoenix.oggdevops.us:9100 Phoenix) 18> start distpath CCDD
2018-03-16T17:28:47Z INFO OGG-08513 The path 'CCDD' has been started.
手順6: プライマリReplicat REPPRIMの作成
初期ロードExtractおよびReplicatが完了すると、それらは削除できます。次に、プライマリReplicatプロセスがリモート・ホスト上に作成され、変更データがターゲット・データベースに適用されます。
AdminClientを使用してプライマリReplicatプロセスを作成します。
注意:
プライマリReplicatはインスタンス化SCNで起動されます。OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 12> add replicat REPPRIM exttrail BB checkpointtable oggadmin.checkpoints
2018-03-16T17:37:46Z INFO OGG-08100 REPLICAT added.
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 13> edit params REPPRIM
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 14> view params REPPRIM
--
-- R E P P R I M . p r m
-- Replicat Parameter File
--
Replicat REPPRIM
UseridAlias oggadmin
Map user01.*
Target user01.*;
OGG (https://dallas.oggdevops.us:9100 Dallas as oggadmin) 15> start replicat REPPRIM atcsn 1624963
2018-03-16T17:38:10Z INFO OGG-00975 REPLICAT REPPRIM starting
2018-03-16T17:38:10Z INFO OGG-15426 REPLICAT REPPRIM started