初期ロードExtractを使用したOracleの正確なインスタンス化
管理クライアントを使用した初期ロードExtractの追加について学習します。
インスタンス化に初期ロードExtractを使用すると、ソース・データベースからターゲット・データベースにデータを正確にレプリケートでき、データ損失はありません。このExtractを構成するには、ファイルベースの初期ロード・プロセスとチェンジ・データ・キャプチャ(CDC)プロセスの組合せが必要です。
Microservices Architectureでは、インスタンス化のプロセスには次のタスクが含まれます。
- 
                        
                        初期ロードExtractの追加および構成: このExtractは、1つ以上の表の既存の内容をソース・データベースからターゲット・データベースにコピーするために使用されます。 
- 
                        
                        変更データ・キャプチャの構成: ソース・データベースからターゲット・データベースにトランザクション変更をコピーする場合に使用します。 
ノート:
MAでは、Oracle GoldenGateダイレクト・ロードを使用したデータのロードをサポートしていません。
ファイルベースの初期ロード・プロセスはMAでデータ・レプリケーションを実行するための優先方法です。主なコンポーネントは次のとおりです。
- 
                        
                        初期ロードExtractおよびReplicat: データベース表の既存の内容をレプリケートします。 
- 
                        
                        プライマリExtractおよびReplicat: データベース表のデータ変更をレプリケートします。 
- 
                        
                        分散パス: 証跡ファイルをターゲット・システムに転送します。 
開始する前に、データベース資格証明の別名が作成されていることを確認してください。
この構成を設定するには、Oracle GoldenGate Webインタフェース、管理クライアントまたはcURLコマンドを使用します。
ステップ1: プライマリExtractの作成
正確なインスタンス化を使用して、ソース・データベースからターゲット・データベースにデータベース・リソースを適切にレプリケートします。最初にプライマリExtractを起動して、変更データ・キャプチャを開始します。正確なインスタンス化は、次の仮定に基づいています。
ノート:
正確なインスタンス化が動作するには、インスタンス化SCNを登録SCNより後にする必要があります。
- 
                        プライマリExtractが起動されます。これは変更データ・キャプチャを行い、登録SCNではありません。 
- 
                        データベースは監視されます。データベースは、最も古いオープン・トランザクションのSCNが登録SCNの後に来るまで待機します。これは、インスタンス化SCNです。 
- 
                        インスタンス化SCNは、初期ロードExtractおよびReplicatプロセスを作成する際に使用されます。 
- 
                        初期ロード・レプリケーションが完了すると、インスタンス化SCNがプライマリReplicatを作成するために使用されます。 
開始するには、AdminClientからプライマリExtract EXTPRIMを作成して起動します。次に例を示します。
                  
コマンド:
OGG (not connected) 1> CONNECT https://oggdep.example.com:9100 as oggadmin password oggadmin !
出力:
Using default deployment 'OGGDEP'
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin 
出力:
Successfully logged into database.
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP) 3> ADD EXTRACT extprim INTEGRATED TRANLOG BEGIN NOW
出力:
2018-03-16T13:37:07Z INFO OGG-08100 EXTRACT (Integrated) added.
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP 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://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS extprim
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP 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://oggdep.example.com:9100 OGGDEP as oggadmin) 7> ADD EXTTRAIL aa EXTRACT extprim
出力:
 2018-03-16T13:37:55Z INFO OGG-08100 EXTTRAIL added.
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP 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://oggdep.example.com:9100 OGGDEP 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の決定
Oracle GoldenGate Microservices Architectureの管理サービスは、オープン・データベース・トランザクションに関する情報を取得するためのエンドポイントを提供します。この情報を使用して、初期ロードExtractをインスタンス化する際に使用するSCNを識別できます。
次の例では、インスタンス化SCNは1609723です。これは前のステップで識別された登録SCNである1608891を超えているすべてのオープン・トランザクションの中で最も古いSCNです。
-- 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 OGGADMIN 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://oggdep.example.com:9100 OGGDEP 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://oggdep.example.com:9100 as oggadmin password oggadmin !
出力:
Using default deployment 'OGGDEP'
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP) 2> DBLOGIN USERIDALIAS oggadmin
出力:
Successfully logged into database.
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 3> ADD CHECKPOINTTABLE oggadmin.checkpoints 
出力:
ADD "oggadmin.checkpoints" succeeded.
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 4> ADD REPLICAT repinit EXTTRAIL dd CHECKPOINTTABLE oggadmin.checkpoints 
出力:
2018-03-16T13:56:41Z INFO OGG-08100 REPLICAT added.
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 5> EDIT PARAMS repinit 
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP 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://oggdep.example.com:9100 OGGDEP 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)を作成して起動します。
                  
Oracle GoldenGate 23ai以降では、ワイルドカードを含むTABLEパラメータを使用して表を解決する場合、初期ロードExtract表のビューは解決されません。ビューを初期ロードExtractに含める必要がある場合は、ワイルドカードを使用せずに別のTABLEパラメータで指定する必要があります。
                  
hr.employeesとビューhr.employees_viewがある場合。初期ロードExtractのパラメータ・ファイルで次を指定した場合:TABLE hr.*;初期ロードExtractには、表hr.employeesのデータのみが含められます。
                  
hr.employees_viewを初期ロードに含める必要がある場合は、初期ロードExtractパラメータ・ファイルに次のパラメータを追加します:TABLE SCOTT.TAB1_VIEW;コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 15> ADD EXTRACT extinit SOURCEISTABLE
出力:
2018-03-16T14:08:38Z INFO OGG-08100 EXTRACT added.
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP as oggadmin) 16> EDIT PARAMS extinit 
コマンド:
OGG (https://oggdep.example.com:9100 OGGDEP 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://oggdep.example.com:9100 OGGDEP 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: 分散パスの作成
管理クライアントからリモート・ホストに対してローカル証跡をコピーするための2つの分散パス(AABBおよびCCDD)を作成します。
                  
コマンド:
OGG (https://oggdep.example.com:9100 oggdep) 15> ADD DISTPATH aabb SOURCE TRAIL://oggdep.example.com: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://oggdep.oggdevops.us:9100 oggdep) 16> ADD DISTPATH ccdd SOURCE TRAIL://oggdep.example.com: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://oggdep.example:9100 oggdep) 17> START DISTPATH aabb 
出力:
2018-03-16T17:28:42Z INFO OGG-08513 The path 'AABB' has been started. 
コマンド:
OGG (https://oggdep.example.com:9100 oggdep) 18> START DISTPATH ccdd 
出力:
2018-03-16T17:28:47Z INFO OGG-08513 The path 'CCDD' has been started.
wssのかわりにoggプロトコルを使用する場合は、TARGETTYPEオプションを使用する必要があります。その場合の構文は次のようになります。
                  
ADD DISTPATH path-name SOURCE source-uri TARGET target-uri [ TARGETTYPE ( MANAGER | COLLECTOR | RECVSRVR ) ] 
TARGETTYPEは、分散パスでレガシー・プロトコルを使用する場合のターゲット・タイプを指定します。この引数は、ターゲットURIスキーマがoggである場合にのみ有効です。
                  
ステップ6: プライマリReplicatの作成
初期ロードExtractおよびReplicatが完了すると、それらは削除できます。次に、プライマリReplicatプロセスがリモート・ホスト上に作成され、変更データがターゲット・データベースに適用されます。
AdminClientを使用してプライマリReplicatプロセスを作成します。
ノート:
プライマリReplicatはインスタンス化SCNで起動されます。
コマンド:
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 12> ADD REPLICAT repprim EXTTRAIL bb CHECKPOINTTABLE oggadmin.checkpoints 
出力:
2018-03-16T17:37:46Z INFO OGG-08100 REPLICAT added.
コマンド: EDIT PARAMS
OGG (https://oggdep.example.com:9100 oggdep as oggadmin) 13> EDIT PARAMS repprim 
コマンド:
OGG (https://oggdep.example.com:9100 oggdep 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://oggdep.example.com:9100 oggdep 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
 