Oracle GoldenGate (OGG) を実務で扱う際、最も重要なのが「データの流れ(データフロー)」と「各プロセスの役割」を正確に理解することです。
特に現在は、従来型の Classic Architecture から、最新の Microservices Architecture (MA) への移行過渡期(19c)および完全移行期(23ai/26ai)にあります。両者のプロセス名の違いや通信方式の違いを理解していないと、設計やトラブルシューティングで躓くことになります。
本記事では、Oracle GoldenGate のレプリケーションの仕組みを、Classic と MA の両面からテキスト図解付きで徹底解説します。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論・要約
- Classic と MA の最大の違い:データ転送を担うのが「プロセス (Pump/Collector)」か「サービス (Distribution/Receiver)」か。
- 共通の概念:データを格納する「Trail ファイル」と、進捗管理の「Checkpoint」という基本概念は不変。
- 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つの主要サービスで構成されます。
- Service Manager (番人)
- Nginx ベースのリバースプロキシ兼プロセス監視役。全ての入り口。
- Administration Service (管理・制御)
- Extract や Replicat プロセスの作成・設定・制御を行う。Classic の Manager の一部機能 +
ggsciの役割。
- Extract や Replicat プロセスの作成・設定・制御を行う。Classic の Manager の一部機能 +
- Distribution Service (送信)
- Classic の Data Pump に相当(より高機能)。
- Trail ファイルを読み取り、Target の Receiver Service へ転送する。「Path」という単位で設定する。
- プロトコル変換(OGG独自 → WebSocket/HTTPS)やフィルタリングも担当。
- Receiver Service (受信)
- Classic の Collector に相当。
- Distribution Service からデータを受け取り、Remote Trail ファイルに書き込む。標準でパッシブに動作する。
- Performance Metrics Service (監視)
- 各プロセスのパフォーマンスデータを収集し、可視化(JSON提供)する。
4. プロセス対比表 (Classic vs MA)
| 機能 | Classic Architecture | Microservices 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. まとめ:実務での確認ポイント
システム設計や障害対応時には、以下の視点でアーキテクチャを確認してください。
- 転送経路は何か?
- Classic なら
Pumpプロセスの.prmを見る。 - MA なら WebUI の
Distribution Serviceの「Path」設定を見る。
- Classic なら
- チェックポイントのズレ
Lag at Chkpt(処理遅延) とTime Since Chkpt(無通信時間) のどちらが増えているか?
- ネットワークの壁
- 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専門のエージェントで非公開求人をチェックしてみませんか?




コメント