6 Oracle GoldenGateレプリケーションのインスタンス化
内容は次のとおりです。
- インスタンス化プロセスの概要
インスタンス化手順では、ソース・データのコピーを作成し、そのコピーをターゲット・データベースにロードします。 - インスタンス化の前提条件
Oracle GoldenGateプロセスまたはネイティブ・データベース・ロード・プロセスを起動する前に、次のステップを実行する必要があります。 - Microservices Architectureの初期ロードの構成
- ターゲットのインスタンス化の実行
この手順では、ターゲット表のインスタンス化の間にOracle GoldenGateでソース上の進行中のトランザクション変更をキャプチャし、ターゲットに適用されるまで格納します。 - 同期の確認
ソース・データとターゲット・データが同期されていることを確認するために、Oracle GoldenGate Veridata製品または独自のスクリプトを使用し、ソース・データとターゲット・データを選択して比較できます。 - Oracle GoldenGate環境のバックアップ
Oracle GoldenGateの処理を開始したら、障害に備えて処理の状態を残しておく上で、効果的なバックアップ・ルーチンが不可欠です。Oracle GoldenGateの作業ファイルをリストアできない場合、レプリケーション環境全体を再インスタンス化し、初期ロードを新たに完了する必要があります。
インスタンス化プロセスの概要
インスタンス化手順では、ソース・データのコピーを作成し、そのコピーをターゲット・データベースにロードします。
初期ロードではデータのポイントインタイム・スナップショットがキャプチャされます。Oracle GoldenGateでは、静的データのロード時に発生したトランザクション変更が適用され、その整合性が保たれます。インスタンス化の完了後、Oracle GoldenGateでは進行中のトランザクション変更の間、同期状態が保持されます。
Oracle GoldenGate処理をインスタンス化する場合、本番マシンにライブをデプロイする前にまずテスト環境でテストすることをお薦めします。これは、信頼できるソースのデータがレプリケーション・プロセスからアクセスされる可能性のあるアクティブ/アクティブまたは高可用性の構成で特に重要です。テストによって、ターゲットでの再ロードや他のトラブルシューティング・アクティビティのためにユーザー・アクティビティを中断することなく、構成の誤りやデータの問題を検出して解決できます。テストによって、インスタンス化プロセスが適切に構成されたことも保証されます。テストに成功した後、パラメータ・ファイルを本番装置にコピーし、本番データを使用して予測可能なインスタンス化を実行できます。
インスタンス化の前提条件
Oracle GoldenGateプロセスまたはネイティブ・データベース・ロード・プロセスを起動する前に、次のステップを実行する必要があります。
変更同期グループの構成および追加
ターゲット・データベースおよびレプリケーション環境のインスタンス化を実行するには、オンライン変更キャプチャおよび適用グループが存在し、適切に構成されている必要があります。次を参照してください。
親トピック: インスタンス化の前提条件
コリジョン処理の追加
この前提条件は、次のインスタンス化方法に適用されます。
この前提条件は、「Oracle Data Pumpを使用したロードの構成」に説明されているインスタンス化方法には適用されません
。
ソース・データベースがいずれかの初期ロード方式でアクティブな場合、Replicatパラメータ・ファイルにコリジョン処理ロジックを追加する必要があります。このロジックでは、静的データのターゲット表へのロードと、Oracle GoldenGateによるターゲット表へのトランザクション変更のレプリケートが同時に行われるために発生する競合が処理されます。
次のコリジョンを処理するには、HANDLECOLLISIONS
パラメータをReplicatパラメータに追加して解決します。
-
すでに存在する行の
INSERT
操作 -
存在しない行の
UPDATE
およびDELETE
操作
インスタンス化ステップの最後に(ステップで尋ねられたときに)、ReplicatパラメータからHANDLECOLLISIONS
を削除する必要があります。
HANDLECOLLISIONS
関数を使用して、ロードによる増分データ変更を調整するには、各ターゲット表に主キーと一意キーがある必要があります。アプリケーションでキーを作成できない場合、TABLE
およびMAP
パラメータのKEYCOLS
オプションを使用し、Oracle GoldenGateで使用する代替キーとなる列を指定します。キーを作成できない場合、影響を受けるロードのソース表を停止する必要があります。
親トピック: インスタンス化の前提条件
ターゲット表の準備
ロードを高速に行い、エラーが起こらないようにするための推奨事項は、次のとおりです。
-
データ: ターゲット表が空であることを確認します。そうでない場合、行の重複エラーや既存の行とロードされる行との間に競合が発生することがあります。
-
索引: ターゲット表から索引を削除します。索引は、初期ロード・プロセスによって実行される挿入には不要で、速度を低下させます。ロードの完了後、索引を再度追加できます。
親トピック: インスタンス化の前提条件
Microservices Architectureの初期ロードの構成
初期ロードExtractの構成は、Oracle GoldenGate MA Webインタフェースまたは管理クライアントから実行できます。
Oracle GoldenGate MA Webインタフェースから構成するには、Oracle GoldenGate Microservicesドキュメントの初期ロードExtractを使用したインスタンス化を参照してください。
ターゲットのインスタンス化の実行
この手順では、ターゲット表のインスタンス化の間にOracle GoldenGateでソースの進行中のトランザクション変更をキャプチャし、ターゲットに適用されるまで格納します。
ターゲット表のインスタンス化を実行するまでに、Oracle GoldenGate環境全体が変更のキャプチャと配信用に構成されている必要があります。Oracle GoldenGateを初期ロード・ユーティリティとして使用する場合は初期ロード・プロセスも同様です。
ノート:
Extractが新しいOracle GoldenGate構成で初めて起動されたとき、開いているソース・トランザクションはスキップされます。Extractの起動後に開始されたトランザクションのみキャプチャされます。
- Oracle Data Pumpを使用したインスタンス化の実行
- SQL*Loaderへのダイレクト・バルク・ロードを使用する場合のインスタンス化の実行
- 入力ファイルからSQL*Loaderへのインスタンス化の実行
- インスタンス化後の処理の監視および制御
ターゲットをインスタンス化し、レプリケーションが有効になったら、プロセスを制御し、レプリケーション環境の全体的な正常性を確認できます。
Oracle Data Pumpを使用したインスタンス化の実行
Oracle Data Pumpでインスタンス化を実行するには、My Oracle Supportドキュメント1276058.1を参照してください。このドキュメントを入手するには、次のようにします。
http://support.oracle.com
に移動します。- 「サインイン」の下部から言語を選択し、Oracleシングル・サインオン(SSO)でログインします。
- 「Dashboard」で、見出し「Knowledge Base」を展開します。
- 「Enter search terms」の下の箇所で、ドキュメントID「
1276058.1
」を貼り付けるか入力し、「検索」をクリックします。 - 検索結果で「Oracle GoldenGate Best Practices: Instantiation from an Oracle Source Database [Article ID 1276058.1]」を選択します。
- 「Attachments」の下のリンクをクリックして、記事を開きます。
親トピック: ターゲットのインスタンス化の実行
SQL*Loaderへのダイレクト・バルク・ロードを使用する場合のインスタンス化の実行
これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。
親トピック: ターゲットのインスタンス化の実行
入力ファイルからSQL*Loaderへのインスタンス化の実行
ノート:
データにマルチバイト文字がある場合、特にオペレーティング・システムの文字セットがデータベースの文字セットと異なる場合、SQL*Loader方法は推奨されません。
これ以降、Oracle GoldenGateでデータ変更の同期が続けられます。
親トピック: ターゲットのインスタンス化の実行
インスタンス化後の処理の監視および制御
ターゲットをインスタンス化し、レプリケーションが有効になったら、プロセスを制御し、レプリケーション環境の全体的な正常性を確認することができます。
Replicatを統合モードで構成した場合は、STATS REPLICAT
コマンドを使用し、直接適用モードで適用されたトランザクション数と比較した、統合モードで適用されたトランザクション数に関する統計を確認できます。
STATS REPLICAT group
このコマンドの出力によって、適用されたトランザクションの数、直接適用にリダイレクトされたトランザクションの数、直接トランザクション比率などの統計が示されます。この統計値により、統合Replicatが意図したとおりに実行されているかどうかを判断できます。環境に問題がなく、直接適用操作率が高い場合は、非統合Replicatの使用を検討します。統合Replicatで並列度を構成できます。
ノート:
統計値を現実的なものにするために、適用統計を表示するのは、Oracle GoldenGate環境が適切に確立され、構成エラーが解決され、予期された処理エラーが適切に処理されたことが確認された後にしてください。
インバウンド・サーバー・コンポーネントごとに、V$
ビューで統合Replicatの実行時統計を確認することもできます。
-
リーダー統計は
V$GG_APPLY_READER
に記録され、読込みメッセージ数、使用されたメモリー、依存性カウントに関する統計が含められます。 -
適用コーディネータ統計は
V$GG_APPLY_COORDINATOR
に記録され、トランザクションレベルで統計値が記録されます。 -
適用サーバー統計は、
V$GG_APPLY_SERVER
に記録されます。このビューでは、適用サーバーの各プロセスの情報(parallelism
およびmax_parallelism
パラメータで制御された)が別個の行に記録されます。各適用サーバーの統計は、SERVER_ID
列で識別されます。0
のSERVER_ID
が存在する場合、ワークロードが引き下げられたために適用サーバーの集計が終了したことを示します。 -
データベースがReplicatから受信したメッセージ数に関する統計は、
V$GG_APPLY_RECEIVER
表に記録されます。
プロセスを制御する場合は、『Oracle GoldenGateの管理』のOracle GoldenGateプロセスの制御に関する項を参照してください。
すべてのプロセスが正常に実行され、エラーがエラー処理ルールに従って処理されることを確認するには、『Oracle GoldenGateの管理』の処理エラーへの対処に関する項を参照してください。Oracle GoldenGateには、プロセスのステータス、ラグ、警告およびその他の情報を表示するコマンドやログが用意されています。
次のビューの問合せの詳細は、『Oracle Databaseリファレンス』を参照してください。
-
V$GOLDENGATE_TABLE_STATS
: インバウンド・サーバーで処理された、レプリケートされた各表で発生したDMLおよびコリジョンの統計を確認する場合。 -
V$GOLDENGATE_TRANSACTION
: Oracle GoldenGateインバウンド・サーバーで処理されたトランザクションに関する情報を確認する場合。
親トピック: ターゲットのインスタンス化の実行
同期の確認
ソース・データとターゲット・データが同期されていることを確認するために、Oracle GoldenGate Veridata製品または独自のスクリプトを使用し、ソース・データとターゲット・データを選択して比較できます。
Oracle GoldenGate環境のバックアップ
Oracle GoldenGateの処理を開始したら、障害に備えて処理の状態を残しておく上で、効果的なバックアップ・ルーチンが不可欠です。Oracle GoldenGateの作業ファイルをリストアできない場合、レプリケーション環境全体を再インスタンス化し、初期ロードを新たに完了する必要があります。
ベスト・プラクティスとして、バックアップ・ルーチンにOracle GoldenGateホーム・インストール全体を含めます。ディレクトリのルートに重要なサブディレクトリ、ファイルおよびプログラムが非常に多くあり、個別に追跡することは困難です。いずれにしても、最も重要なファイルがバックアップ領域の大半を占めるため、単純にインストール・ディレクトリ全体をバックアップすることは、高速で簡単なリカバリのためには理にかなっています。