【図解】Oracle GoldenGate プロセス・アーキテクチャの仕組み|Classic vs MA

26ai

Oracle GoldenGate (OGG) を実務で扱う際、最も重要なのが「データの流れ(データフロー)」と「各プロセスの役割」を正確に理解することです。

特に現在は、従来型の Classic Architecture から、最新の Microservices Architecture (MA) への移行過渡期(19c)および完全移行期(23ai/26ai)にあります。両者のプロセス名の違いや通信方式の違いを理解していないと、設計やトラブルシューティングで躓くことになります。

本記事では、Oracle GoldenGate のレプリケーションの仕組みを、Classic と MA の両面からテキスト図解付きで徹底解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

結論・要約

  1. Classic と MA の最大の違い:データ転送を担うのが「プロセス (Pump/Collector)」か「サービス (Distribution/Receiver)」か。
  2. 共通の概念:データを格納する「Trail ファイル」と、進捗管理の「Checkpoint」という基本概念は不変。
  3. 23ai/26ai の世界:MA が標準となり、WebSocket/HTTPS 通信や分散構成(Mesh)が前提となる。

1. 共通概念:Trail ファイルと Checkpoint

アーキテクチャを理解する前に、OGG の全バージョン共通の「データの入れ物」と「管理簿」を押さえます。

Trail ファイル (トレイルファイル)

OGG が抽出したデータを一時的に保存するファイルです。

  • Local Trail: Source 側に保存される抽出データ。
  • Remote Trail: Target 側に転送されたデータ。
  • 構造: ヘッダー情報とデータ本体(Operation Code, Before/After Image)で構成されるシリアライズされたバイナリ。

Checkpoint (チェックポイント)

「どこまで読んで(Read)、どこまで書いたか(Write)」を記録するポインタ情報です。

  • プロセスが異常終了しても、チェックポイント位置から再開することでデータの整合性を保ちます(At Least Once)。

2. Classic Architecture の仕組み (〜19c)

長年親しまれてきた、コマンドライン (ggsci) ベースの構成です。プロセスが OS 上で直接起動し、独自プロトコルで通信します。

データフロー図解 (Classic)

[ Source Server ]                                     [ Target Server ]
+---------------------+                               +---------------------+
|  Oracle DB (Redo)   |                               |  Oracle DB          |
+----------|----------+                               +----------^----------+
           | (LogMiner)                                          | (SQL)
           v                                                     |
+----------+----------+     (TCP/IP)      +-----------+     +----+----+
|  Extract プロセス    | ----------------> | Collector | --> | Replicat|
+----------+----------+     (Push)        +-----+-----+     +---------+
           |                                    |
           v                                    v
   [ Local Trail ]                      [ Remote Trail ]
   (./dirdat/la000000)                  (./dirdat/ra000000)

※ 実運用では、Extract と Collector の間に「Data Pump Extract」を挟む構成が標準。

主要プロセスの役割

プロセス名役割特徴
Manager親玉。全プロセスの起動・停止・監視、ログ管理を行う。ポート7809を使用。これが落ちると全停止はしないが管理不能になる。
Extract抽出。REDOログから変更データを取得し、Trailに書く。Integrated CaptureモードではDB内部のLogMinerと連携。
Data Pump転送。Local Trailを読み、Targetへ送る(オプションだが推奨)。ネットワーク断時のバッファ役割を果たす。実体はExtractプロセスの一種。
Collector受信。Target側でデータを受け取り、Remote Trailに書く。Managerが動的に起動するバックグラウンドプロセス。
Replicat適用。Remote Trailを読み、SQLに変換してTarget DBへ適用。19c以降は並列処理可能な Parallel Replicat が主流。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

3. Microservices Architecture (MA) の仕組み (19c/23ai/26ai)

REST API ベースの現代的なアーキテクチャです。各機能が独立した「マイクロサービス」として動作し、HTTPS / WebSocket で通信します。23ai 以降の Oracle DB 向け標準です。

データフロー図解 (MA)

Classic の “Data Pump” と “Collector” が、それぞれ高機能な Service に置き換わっている点に注目してください。

[ Source Deployment (MA) ]                            [ Target Deployment (MA) ]
+-------------------------+                           +-------------------------+
| Admin Service (Extract) |                           | Admin Service (Replicat)|
+-----------|-------------+                           +-----------^-------------+
            | (LogMiner)                                          | (SQL)
            v                                                     |
    [ Local Trail ]                                       [ Remote Trail ]
            ^                                                     ^
            | (Read)                                              | (Write)
+-----------+-------------+       (WSS/HTTPS)         +-----------+-------------+
| Distribution Service    | ========================> |   Receiver Service      |
| (Path: source->target)  |                           |                         |
+-------------------------+                           +-------------------------+

主要サービスの役割 (The 5 Services)

MA は以下の5つの主要サービスで構成されます。

  1. Service Manager (番人)
    • Nginx ベースのリバースプロキシ兼プロセス監視役。全ての入り口。
  2. Administration Service (管理・制御)
    • Extract や Replicat プロセスの作成・設定・制御を行う。Classic の Manager の一部機能 + ggsci の役割。
  3. Distribution Service (送信)
    • Classic の Data Pump に相当(より高機能)。
    • Trail ファイルを読み取り、Target の Receiver Service へ転送する。「Path」という単位で設定する。
    • プロトコル変換(OGG独自 → WebSocket/HTTPS)やフィルタリングも担当。
  4. Receiver Service (受信)
    • Classic の Collector に相当
    • Distribution Service からデータを受け取り、Remote Trail ファイルに書き込む。標準でパッシブに動作する。
  5. Performance Metrics Service (監視)
    • 各プロセスのパフォーマンスデータを収集し、可視化(JSON提供)する。

4. プロセス対比表 (Classic vs MA)

機能Classic ArchitectureMicroservices Architecture (MA)
全体管理Manager プロセス (mgr)Service Manager
プロセス制御ggsci コマンドAdministration Service (WebUI / REST / adminclient)
データ抽出Extract プロセスExtract プロセス (Admin Service配下で動作)
データ転送Data Pump Extract プロセスDistribution Service (Distribution Path)
データ受信Collector (動的起動)Receiver Service
設定ファイルパラメータファイル (.prm)JSON + パラメータファイル (WebUIで管理)
通信プロトコルTCP/IP (独自)HTTPS / WebSocket / TCP

23ai / 26ai での進化ポイント

  • Classic 廃止: Oracle Database 向けの OGG 23ai では、Classic バイナリ自体が含まれなくなりました。
  • Distribution Path の重要性: 従来の Pump プロセス (.prm を書く方式) ではなく、GUI で設定可能な「Path」の使用が強く推奨されます。
  • 証明書管理: MA では各サービス間の通信に SSL/TLS 証明書が標準で組み込まれ、セキュリティ強度が格段に向上しています(Wallet 必須)。

5. 詳細技術:Integrated Capture と Replicat

アーキテクチャに関わらず、DB との接点となる「Capture (Extract)」と「Apply (Replicat)」の内部動作も重要です。

A. Integrated Capture (統合キャプチャ) の内部

OS 上から REDO ログファイルを見るのではなく、DB インスタンス内部の LogMiner Server に接続して LCR (Logical Change Record) を受け取ります。

[ Oracle Database (Source) ]
+-------------------------------------------------------+
|  Redo Log / Archive Log                               |
|      ^                                                |
|      | (Read)                                         |
|  [ LogMiner Server ] <--- (Memory Queue) ---+         |
|      | (LCR形式で送出)                      |         |
+------+--------------------------------------+---------+
       |                                      | (Attach)
       v                                      |
[ OGG Extract Process ] ----------------------+
  • メリット: RAC の各ノードのログを自動マージしてくれる。圧縮表や暗号化データも復号して取得できる。

B. Integrated / Parallel Replicat (適用)

SQL を 1行ずつ実行するのではなく、依存関係を解析して並列適用します。

  • Integrated Replicat (IR):
    • DB 内の Inbound Server プロセスにデータを渡し、DB 側で適用処理を行う。
  • Parallel Replicat (PR) – 推奨:
    • OGG 側で依存関係計算と並列化を行い、複数の DB セッション経由で高速に SQL を適用する。
    • 19c 以降では、特別な理由がない限り Parallel Replicat の使用が推奨されます(Integrated mode)。

6. FAQ(よくある質問)

実務でアーキテクチャ設計や運用を行う際によくある質問をまとめました。

Q1. Source が Classic、Target が MA の構成は可能ですか?

A. はい、可能です。 これは移行期に非常に多い構成です。

  • Classic (Source) → MA (Target): Classic の Pump プロセスが、MA の Receiver Service に対してデータを送信できます。Pump のパラメータに RMTHOST <MA-Host>, MGRPORT <Receiver-Port> を指定するだけで、自動的にプロトコル調整が行われます。
  • MA (Source) → Classic (Target): MA の Distribution Service が、Classic の Collector に対してデータを送信可能です。

Q2. パラメータ(.prm)を変更した場合、即時反映されますか?

A. いいえ、プロセスの再起動が必要です。 Extract や Replicat のパラメータファイルを編集した場合、プロセスを一度 STOP し、その後 START するまで変更は適用されません。 MA 環境で WebUI から変更した場合も同様に再起動が必要です。

Q3. Trail ファイルは自動的に削除されますか?

A. 設定しない限り削除されず、ディスクを圧迫し続けます。 古い Trail ファイルを削除するには、明示的にパージ設定を入れる必要があります。

  • Classic: Manager パラメータに PURGEOLDEXTRACTS を記述します。
  • MA: Admin Service の設定画面から「Purge tasks」をスケジュール設定します。

7. まとめ:実務での確認ポイント

システム設計や障害対応時には、以下の視点でアーキテクチャを確認してください。

  1. 転送経路は何か?
    • Classic なら Pump プロセスの .prm を見る。
    • MA なら WebUI の Distribution Service の「Path」設定を見る。
  2. チェックポイントのズレ
    • Lag at Chkpt (処理遅延) と Time Since Chkpt (無通信時間) のどちらが増えているか?
  3. ネットワークの壁
    • MA の場合、Source から Target への HTTPS/WebSocket 通信(ポート 443 や専用ポート)が Firewall で許可されているか?

Oracle GoldenGate 23ai/26ai 時代に向けて、Distribution Service を中心とした MA のデータフローに慣れておくことを強くお勧めします。

[参考]
Oracle GoldenGate Microservices Architectureドキュメント, (23ai)

注記: 本記事は Oracle Database 19c/23ai を対象に解説します。

💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?

Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?

コメント

タイトルとURLをコピーしました