Oracle GoldenGateのデータ・レプリケーション・コンポーネントについて

データ・レプリケーション構成のタイプ

Oracle GoldenGateは、次の目的のために構成できます。

Oracle GoldenGateプロセス

Extract

Extractプロセスは、コミットされたデータベース・トランザクションを取得する必要があるソース・エンドポイントで実行されるように構成されます。このプロセスは、Oracle GoldenGateの抽出すなわちデータ取得メカニズムです。

次のタイプのデータ・ソースからデータを取得するようにExtractプロセスを構成できます。

詳細は、「Extractについて」を参照してください。

Replicat

Replicatプロセスは、証跡ファイルからの更新をターゲット・データベースに適用します。ターゲット・データベースのトレイル・ファイルを読み取り、DML操作またはDDL操作を再構成して、ターゲット・データベースに適用します。

Replicatプロセスは動的SQLを使用して1つのSQL文を一度だけコンパイルした後、異なるバインド変数を使用してこの文を何回も実行します。Replicatプロセスは、レプリケートされた操作をターゲット・データベースに適用する前に一定の時間待機するように構成できます。

遅延が推奨される場合として、たとえば、間違ったSQLの伝播を防ぐ場合、異なるタイムゾーンにわたるデータの受信を制御する場合、または他の計画済イベントの発生に備えて時間を考慮する場合があげられます。

Oracle GoldenGateの一般的な2つのユースケースでは、Replicatは次のように機能します。

複数のReplicatプロセスを1つ以上のExtractプロセスとともにパラレルに構成して、スループットを向上できます。データ整合性を維持するため、プロセスのセットごとに異なるオブジェクトを処理します。Replicatプロセス間で区別するために、一意のグループ名を使用してReplicatグループを作成できます。

様々なタイプのレプリカ・モードの詳細は、「Replicatについて」を参照してください。

データ・トランスポートの分散パス

分散パス(DISTPATH)は、エンドポイント間の証跡ファイルのパスを定義します。分散パスは、Distribution Serviceから構成されます。詳細は、「Distribution Service」を参照してください。

ターゲットが開始する分散パス(受信パスまたはRECVPATHとも呼ばれる)は、セキュア・ターゲット・エンドポイントを含む環境における、Receiver ServiceからDistribution Serviceへの証跡のパスを定義します。Add Receiver Service Pathsを参照してください。

Oracle GoldenGateオブジェクト

Oracle GoldenGateオブジェクトを直接変更しないでください。パラメータ・ファイル、証跡、チェックポイント・ファイルおよび表の変更は、AdminClientおよびWebインタフェースを使用したREST APIコールでのみ変更する必要があります。

トレイル・ファイル

証跡とは、Oracle GoldenGateがデータベース変更の継続的な抽出およびレプリケーションをサポートするために、取得した変更を格納するディスク上の一連のファイルです。

証跡は、Oracle GoldenGateの構成方法に応じて、ソース・システム、中間システム・システム、ターゲット・システムのいずれか、またはこれらのを組み合せたシステム上に配置できます。これは、ローカル・システムではExtract証跡(またはローカル証跡)と呼ばれます。リモート・システムでは、リモート証跡と呼ばれます。Oracle GoldenGateでは、記憶域として証跡を使用することで、データの正確性とフォルト・トレランスをサポートします。また、証跡の使用により、抽出アクティビティとレプリケーション・アクティビティを相互に独立して実行できます。これらのプロセスが分離されることで、データを処理して配信する方法の選択肢が広がります。たとえば、変更を継続的に抽出してレプリケートするかわりに、変更を継続的に抽出しながら、ターゲット・アプリケーションの必要に応じて後からいつでもターゲットにレプリケートできるように、それらの変更を証跡に格納することができます。

また、証跡を使用することにより、Oracle AI Databaseが異種環境で作動できるようになります。証跡ファイルにはデータが一定の形式で格納されるため、サポートされるすべてのデータベースに対してReplicatプロセスが読み取ることができます。

証跡ファイルに書き込むプロセス

Oracle GoldenGate Extractが証跡ファイルに書き込みます。すべてのローカル証跡で異なるフルパス名を使用する必要がありますが、違うパスであれば同じ証跡名を使用できます。

Oracle GoldenGate MAでは、分散パスと受信パスを使用してリモート証跡を分散します。Distribution ServiceとReceiver Serviceは、それぞれ分散パスと受信パスを構成するために使用されます。分散パスは、ネットワークを介して証跡を定義済ターゲットに転送します。証跡には、リモート・システムに転送された複数のExtractからのデータを含めることができます。

証跡ファイルから読み取るプロセス

Replicatプロセスおよび分散パスが証跡ファイルを読み取ります。Extractは、ローカル証跡を使用してDMLおよびDDL操作を取得し、必要に応じてさらに処理を実行し、次のOracle GoldenGateプロセス(Replicat)によって読み取られる証跡にデータを転送します。

分散デプロイメントの場合、Distribution Serviceプロセスはリモート証跡ファイルを読み取り、それをネットワーク経由で待機中のReceiver Serviceプロセスに送信する。

Replicatプロセスは証跡を読み取り、レプリケートされたDML操作およびDDL操作をターゲット・データベースに適用します。

証跡ファイルの作成およびメンテナンス

証跡ファイルは処理中に必要に応じて作成されます。Oracle GoldenGate構成に追加するときに、2文字の証跡名を指定します。デフォルトでは、証跡は、Oracle GoldenGateディレクトリのサブディレクトリに格納されます。証跡ファイルには9桁の順序番号を指定できます。

新しいファイルを作成すると、各ファイルが2文字の証跡名を継承し、その後に一意の9桁の順序番号(000000000から999999999)が追加されます。順序番号が999,999,999または999,999 (前の設定によって異なります)に達すると、Extractプロセスは異常終了します。

証跡ファイルは、証跡ファイルをパージする自動メンテナンス・タスクを設定するか、管理サービスから証跡ファイルを手動で削除することで、日常的にパージできます。証跡ファイルの削除および証跡のパージを参照してください

異なるオブジェクトまたはアプリケーションからデータを分離するために、複数の証跡を作成できます。スループットを最大化し、システムのI/O負荷を最小化するため、抽出データの証跡に対する入出力は、サイズの大きいブロック単位で行われます。証跡ファイルまたは証跡順序のトランザクション順序は保持されます。

パラメータ・ファイル

ほとんどのOracle GoldenGate機能は、パラメータ・ファイルに指定されたパラメータによって制御されます。パラメータ・ファイルは、関連するOracle GoldenGateプロセスによって読み取られるプレーン・テキスト・ファイルです。

Oracle GoldenGate Microservices Architectureでは、次のランタイム・パラメータが使用されます。

ランタイム・パラメータを使用すると、次のようなOracle GoldenGateの同期の様々な機能を制御できます。

1つのデプロイメントで複数のExtractおよびReplicatを実行できますが、それぞれを関連付けることができるのは1つのパラメータ・ファイルのみです。ExtractおよびReplicatは、大/小文字を区別しない名前で識別されます。たとえば、exteという名前のExtractは、exte.prmという関連パラメータ・ファイルを1つ持ちます。

チェックポイント・ファイルおよび表

Oracle GoldenGateでは、チェックポイント・ファイル、チェックポイント表および証跡ファイル内の対応する値の組合せを使用して、データがターゲット・プラットフォームに1回のみ適用されるようにします。Oracle GoldenGateでは、これらのオブジェクトを使用して、データの適切なレプリケーション、およびソース・データベース、ターゲット・データベースまたはOracle GoldenGate自体の停止またはクラッシュが発生した場合のリカバリの目的で、これらのオブジェクトを使用します。これらのオブジェクトは、Oracle GoldenGateの健全性にとって重要であり、Oracle Supportからの直接のガイダンスなしに変更または変更しないでください。

「チェックポイント表のその他の詳細」を参照してください。

Extract、パスおよびReplicatによるチェックポイントの使用

チェックポイントは、オンライン変更同期時に、プロセスの現在の読取り位置と書込み位置を格納するために使用されます。チェックポイントにより、同期対象としてマークされたデータ変更が抽出され、重複した抽出が防止されます。チェックポイントによって、システム、ネットワークまたはOracle GoldenGateプロセスの再起動が必要になった場合のデータ損失を予防することで、フォルト・トレランスが実現します。

Extract、Path (Extract)およびDelivery (Replicat)では、チェックポイント・ファイルに位置が保存され、障害時のリカバリが可能になります。Extractは、データソースおよび証跡内にその位置を示すチェックポイントを作成します。Replicatは、証跡内にその位置を示すチェックポイントを作成します。次の図は、このワークフローを示しています。

Extract、Path (Extract)およびReplicatは、障害時にリカバリできるように、位置をチェックポイント・ファイルに保存します。

チェックポイント情報は、デフォルトのOracle GoldenGateディレクトリ$OGG_VAR_HOME/lib/checkptのチェックポイント・ファイルに保持されます。

これは、データベースに格納されているオプションのチェックポイント表と混同しないでください。Extractは、証跡に、現在のチェックポイントと呼ばれる書込みチェックポイントを作成します。現在のチェックポイントは、Extractが現在書き込んでいる証跡内の位置です。

チェックポイントには、プロセスの現在の読取り/書込み位置が格納されます。冗長な抽出を防止し、フォルト・トレランスを提供します。

正しいソースは証跡ファイル内にあるため、Oracle GoldenGateは情報目的でのみチェックポイントを使用します。

パス・チェックポイント

分散サービス・パス・チェックポイントでは、デプロイメント間で証跡ファイルを転送する際に、Microservices Architectureの信頼性がさらに高くなります。次の図は、デプロイメントで使用されるDISTPATHチェックポイント・メカニズムを示しています。

DISTPATHチェックポイントのワークフロー

現在の検針は、最後に検針されたもののチェックポイントです。チェックポイントでは、毎秒変更がチェックされます。この周期は設定可能です。書込みチェックポイントは、最後に証跡に書き込まれた内容を識別します。Oracle GoldenGateは、証跡内の書込み位置を追跡します。

分散サービス・パスでは、コミットされたレコードのみが処理されるため、オープン・トランザクションは認識されません。

Replicatのチェックポイント

Replicatは、チェックポイント表でチェックポイントを作成して、最後の読取り位置と適用位置をマークします。

プロセス・チェックポイントを表示するには、INFO REPLICATコマンドをSHOWCHオプションとともに使用します。基本コマンドでは、現在のチェックポイントを表示します。

現在のチェックポイントは、Replicatによって証跡内で最後に読み取られ、データベースに適用されたレコードの位置です。適用されたトランザクションの正しいソースはチェックポイント表です。ReplicatおよびINFOコマンドで使用されるチェックポイント・ファイルは、概算およびアドバイザ情報のみです。このワークフローを理解するには、次のイメージを参照してください。

ExtractチェックポイントおよびReplicatチェックポイント・データ・フロー