Oracle GoldenGateでのデータ・レプリケーションのコンポーネント
データ・レプリケーション構成のタイプ
Oracle GoldenGateは、次の目的で構成できます。
-
あるデータベースからデータ・レコードの静的抽出を行い、別のデータベースまたはデータ・ソースにそのレコードをロードする場合。
-
ソースとターゲットのデータ一貫性を維持するために、トランザクション・データ操作言語(DML)操作とデータ定義言語(DDL)変更(サポートされるデータベースの場合)を継続的に抽出およびレプリケートする場合。
-
Oracle GoldenGate for Big Dataを使用してサポートされているデータベース・ソースからデータを抽出し、ビッグ・データ・ターゲットやファイル・ターゲットにレプリケートする場合。
Oracle GoldenGateプロセス
Extract
Extractプロセスは、コミットされたデータベース・トランザクションを取得する必要があるソース・エンドポイントで実行されるように構成されます。このプロセスは、Oracle GoldenGateの抽出すなわちデータ取得メカニズムです。
次のタイプのデータ・ソースからデータを取得するようにExtractプロセスを構成できます。
-
ソース表: このソース・タイプは初期ロードで使用されます。
-
データベースのリカバリ・ログまたはトランザクション・ログ: ログから取得するとき、実際の方法はデータベースのタイプによって異なります。このソース・タイプの例として、Oracle DatabaseのREDOログがあります。
詳細は、「Extractについて」を参照してください。
親トピック: Oracle GoldenGateプロセス
Replicat
Replicatプロセスは、証跡ファイルからの更新をターゲット・データベースに適用します。ターゲット・データベースの証跡ファイルを読み取り、DML操作またはDDL操作を再構成して、ターゲット・データベースに適用します。
Replicatプロセスは動的SQLを使用して1つのSQL文を一度だけコンパイルした後、異なるバインド変数を使用してこの文を何回も実行します。レプリケートした操作をターゲット・データベースに適用する前に一定時間待機するようにReplicatプロセスを構成できます。
遅延が推奨される場合として、たとえば、間違ったSQLの伝播を防ぐ場合、異なるタイムゾーンにわたるデータの受信を制御する場合、または他の計画済イベントの発生に備えて時間を考慮する場合があげられます。
Oracle GoldenGateの一般的な2つのユースケースでは、Replicatは次のように機能します。
-
初期ロード: 初期ロード用にOracle GoldenGateを設定すると、Replicatプロセスは静的データ・コピーをターゲット・オブジェクトに適用するか、高速なバルク・ロード・ユーティリティにデータをルーティングします。
-
変更同期: ターゲット・データベースとソース・データベースとの同期を維持するようにOracle GoldenGateを設定すると、Replicatプロセスは、データベース・タイプに応じてネイティブ・データベース・インタフェースまたはODBCを使用して、ソース操作をターゲット・オブジェクトに適用します。
複数のReplicatプロセスを1つ以上のExtractプロセスとともにパラレルに構成して、スループットを向上できます。データ整合性を維持するため、プロセスのセットごとに異なるオブジェクトを処理します。Replicatプロセス間で区別するために、一意のグループ名を使用してReplicatグループを作成できます。
様々なタイプのレプリカ・モードの詳細は、「Replicatについて」を参照してください。
親トピック: Oracle GoldenGateプロセス
データ・トランスポートの分散パス
分散パス(DISTPATH)は、エンドポイント間の証跡ファイルのパスを定義します。分散パスは、Distribution Serviceから構成されます。詳細は、「Distribution Service」を参照してください。
ターゲットが開始する分散パス(受信パスまたはRECVPATHとも呼ばれる)は、セキュア・ターゲット・エンドポイントを含む環境における、Receiver ServiceからDistribution Serviceへの証跡のパスを定義します。「ターゲット開始分散パスの追加」を参照してください。
親トピック: Oracle GoldenGateプロセス
Oracle GoldenGateオブジェクト
証跡ファイル
証跡とは、Oracle GoldenGateがデータベース変更の継続的な抽出およびレプリケーションをサポートするために、取得した変更を格納するディスク上の一連のファイルです。
証跡は、Oracle GoldenGateの構成方法に応じて、ソース・システム、中間システム、ターゲット・システムのいずれか、またはこれらを組み合せたシステムに配置できます。これは、ローカル・システムではExtract証跡(またはローカル証跡)と呼ばれます。リモート・システムでは、リモート証跡と呼ばれます。Oracle GoldenGateでは、記憶域として証跡を使用することで、データの正確性とフォルト・トレランスをサポートします。また、証跡の使用により、抽出アクティビティとレプリケーション・アクティビティを相互に独立して実行できます。これらのプロセスが分離されることで、データを処理して配信する方法の選択肢が広がります。たとえば、変更を継続的に抽出してレプリケートするかわりに、変更を継続的に抽出しながら、ターゲット・アプリケーションの必要に応じて後からいつでもターゲットにレプリケートできるように、それらの変更を証跡に格納することができます。
また、証跡を使用することで、Oracleデータベースが異種環境で動作できます。証跡ファイルにはデータが一定の形式で格納されるため、サポートされるすべてのデータベースに対して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操作をターゲット・データベースに適用します。
親トピック: 証跡ファイル
証跡ファイルの作成およびメンテナンス
証跡ファイルは処理中に必要に応じて作成されます。
コマンドまたはADD RMTTRAIL
コマンドで証跡をOracle GoldenGate構成に追加するときに、2文字の証跡名を指定します。デフォルトでは、証跡は、Oracle GoldenGateディレクトリのdirdatサブディレクトリに格納されます。ADD EXTTRAIL
TRAIL_SEQLEN_9D | TRAIL_SEQLEN_6D GLOBALS
パラメータを使用して、6桁または9桁の順序番号を指定できます。TRAIL_SEQLEN_9D
がデフォルトで設定されています。可能な場合は、9桁の順序番号を使用することをお薦めします。
新しいファイルを作成すると、各ファイルが2文字の証跡名を継承し、それに一意の9桁の順序番号(000000000から999999999)が追加されます(たとえば、c:\ggs\dirdat\tr000000001
のようになります)。順序番号が999,999,999または999,999 (前の設定によって異なります)に達すると、Extractプロセスは異常終了します。
証跡ファイルは、ManagerパラメータのPURGEOLDEXTRACTS
を使用して、ルーチンごとに消去できます。
異なるオブジェクトまたはアプリケーションからデータを分離するために、複数の証跡を作成できます。スループットを最大化し、システムのI/O負荷を最小化するため、抽出データの証跡に対する入出力は、サイズの大きいブロック単位で行われます。証跡ファイルまたは証跡順序のトランザクション順序は保持されます。
親トピック: 証跡ファイル
パラメータ・ファイル
ほとんどのOracle GoldenGate機能は、パラメータ・ファイルに指定されたパラメータによって制御されます。パラメータ・ファイルは、関連するOracle GoldenGateプロセスによって読み取られるプレーン・テキスト・ファイルです。
Oracle GoldenGate Microservices Architectureでは、次のランタイム・パラメータが使用されます。
-
グローバル・ランタイム・パラメータ: これらはGLOBALSパラメータとは異なります。パラメータ・ファイルで指定されているすべてのデータベース・オブジェクトに適用されます。グローバル・ランタイム・パラメータの中には、プロセスの動作に影響するものと、メモリー使用率などの機能に影響するものがあります。
USERIDALIAS
は、グローバル・ランタイム・パラメータの例です。グローバル・パラメータは、ファイル内で1回のみリストされる必要があります。複数回リストされると、最後のインスタンスのみがアクティブになり、他のすべてのインスタンスは無視されます。 -
オブジェクト固有パラメータ: これらのパラメータを使用すると、データベース・オブジェクトの異なるセットに対して異なる処理ルールを適用できます。
GETINSERTS
およびIGNOREINSERTS
は、オブジェクト固有パラメータの例です。どちらのパラメータも、影響を受けるオブジェクトを指定するMAP
文の前にあります。オブジェクト固有パラメータは、ファイル内のリスト順に有効になります。
ランタイム・パラメータを使用すると、次のようなOracle GoldenGateの同期の様々な機能を制御できます。
- データの選択、マッピング、変換およびレプリケーション
- DDLおよび順序の選択、マッピングおよびレプリケーション(サポートされる場合)
- エラーの解決
- ロギング
- ステータスおよびエラーのレポート
- システム・リソースの使用率
- 起動時および実行時の動作
1つのデプロイメントで複数のExtractおよびReplicatを実行できますが、それぞれを関連付けることができるのは1つのパラメータ・ファイルのみです。ExtractおよびReplicatは、大/小文字を区別しない名前で識別されます。たとえば、exteという名前のExtractには、exte.prmという関連パラメータ・ファイルが1つあります。
詳細は、「パラメータ・ファイルの使用」を参照してください。
親トピック: Oracle GoldenGateオブジェクト
チェックポイント・ファイル
データベース・チェックポイントを使用すると、Oracle GoldenGateでは、Oracle GoldenGateコマンドを使用して、データベースにユーザー定義名を持つチェックポイント表が作成されます。これらのチェックポイント表は、ExtractおよびReplicatプロセス用に作成されます。Extractの場合、データ・ソースに読取りおよび書込みチェックポイントが設定されます。Replicatの場合、チェックポイントは証跡ファイルに設定されます。
「Oracle GoldenGateチェックポイント表」を参照してください。
親トピック: Oracle GoldenGateオブジェクト