Oracle GoldenGate 23ai 構築|DB 26ai Free レプリケーション

26ai

本記事では、最新の Oracle GoldenGate 23ai を使用し、Oracle Database 26ai Free 間でデータレプリケーションを行う手順を解説します。 「最新の26ai環境でGoldenGateを試したい」「インストールから初期設定までの流れを知りたい」という方向けに、実機ログをベースにした構築ステップをまとめました。

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

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

結論:26ai と GG 23ai の構築ステップ

Oracle Database 26ai Free と GoldenGate 23ai を連携させる最短ルートは以下の通りです。

  1. OS/DB準備: 26ai Free 環境を2台用意し、PDBとTNSを設定する
  2. GGインストール: OGG 23ai (Microservices) をインストールする
  3. DBパラメータ設定: enable_goldengate_replication を有効化する
  4. ユーザー作成: 23ai 以降推奨のロール (ogg_capture / ogg_apply) を付与する
  5. プロセス設定: Service Manager 経由で Extract / Replicat を作成する

1. 検証環境の構成と前提

今回は Oracle VM VirtualBox 上の Oracle Linux 8 に、Source(転送元)と Target(転送先)の2つの環境を構築します。

項目Source (ソース)Target (ターゲット)
ホスト名26ai-gg23ais26ai-gg23ait
IPアドレス192.168.56.101192.168.56.102
DB VersionOracle DB 26ai Free (23.26.0)Oracle DB 26ai Free (23.26.0)
GG VersionOracle GoldenGate 23ai (23.4.1)Oracle GoldenGate 23ai (23.4.1)
CDBFREEFREE
PDBPDBSPDBT
GG Userggadminsggadmint

事前準備

  • ファイアウォールは無効化済み (systemctl stop firewalld)。
  • /etc/hosts に互いのホスト名とIPを登録済み。

2. データベースの準備 (PDB作成とTNS設定)

まず、デフォルトの FREEPDB1 を削除し、今回の検証用PDB (PDBS / PDBT) を作成します。

2-1. PDB の再作成

ソース側 (26ai-gg23ais) での実行例です。ターゲット側も同様に PDBT として作成してください。

-- PDBの確認
SQL> show pdbs

-- 既存PDBから複製して PDBS を作成
-- 解説: file_name_convertでデータファイルのパスを置換してコピーします
SQL> create pluggable database pdbs from freepdb1
  2  file_name_convert=('FREEPDB1','PDBS');

-- PDBをオープン
SQL> alter pluggable database all open;

-- 不要な FREEPDB1 を削除
-- 解説: リソース節約のため不要な初期PDBを削除しています
SQL> alter pluggable database freepdb1 close immediate;
SQL> drop pluggable database freepdb1 including datafiles;

SQL> show pdbs
    CON_ID CON_NAME                       OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
         2 PDB$SEED                       READ ONLY  NO
         4 PDBS                           READ WRITE NO

2-2. tnsnames.ora の設定

GoldenGate が各 PDB に接続できるよう、tnsnames.ora を編集します。

ファイルパス: $ORACLE_HOME/network/admin/tnsnames.ora

# ソースの設定例
# 各エントリ(PDBS, PDBT)でそれぞれのホストとサービス名を指定します

FREE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = gg23ai-s)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FREE)
    )
  )

PDBS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = gg23ai-s)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBS)
    )
  )

PDBT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = gg23ai-t)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBT)
    )
  )
# ターゲットの設定例
# 各エントリ(PDBS, PDBT)でそれぞれのホストとサービス名を指定します

FREE =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = gg23ai-t)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = FREE)
    )
  )

PDBS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = gg23ai-s)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBS)
    )
  )

PDBT =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = gg23ai-t)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = PDBT)
    )
  )

3. Oracle GoldenGate 23ai のインストール

GoldenGate 23ai (Microservices Architecture) をインストールします。ソース・ターゲット双方で実施します。

※GoldenGate 23ai と Microservices Architecture (MA) について

Oracle GoldenGate 23ai では、従来のクラシック・アーキテクチャ(Classic Architecture)に代わり、マイクロサービス・アーキテクチャ(MA) が標準的な構成となります。

MA構成の主な特徴:

  • REST API ベース: すべての操作が REST API 経由で実行可能になり、クラウド環境や自動化ツールとの親和性が向上しています。
  • Service Manager: 複数のデプロイメントを一元管理する監視・管理プロセスです。
  • Administration Server: Extract/Replicat プロセスを作成・管理するサーバー機能です。
  • Web UI: 直感的なブラウザベースの管理画面(HTML5)が提供され、GUIでの操作がメインとなります。

本手順でも、この MA 構成を前提にインストールと設定を行います。

3-1. ディレクトリ作成と解凍

# ディレクトリ作成
# 解説: ホームディレクトリ、ServiceManager用、Deployment用、TNS用など推奨構成で作成
mkdir -p /opt/oracle/goldengate/23ai/ogg_home
mkdir -p /opt/oracle/goldengate/23ai/sm_home
mkdir -p /opt/oracle/goldengate/23ai/dp_home
mkdir -p /opt/oracle/goldengate/23ai/tns_admin
mkdir /opt/oracle/oggsc

# インストーラーの解凍
cd /opt/oracle/oggsc
unzip -q V1042871-01.zip
cd fbo_ggs_Linux_x64_Oracle_services_shiphome/Disk1/

[参考]
Oracle GoldenGateのダウンロード | Oracle 日本

3-2. インストーラー実行

./runInstaller

※GUIインストーラーが起動します。環境に合わせて以下の値を入力してください。

■ Installation Step (runInstaller)

  • Software Location: ogg_home (例: /opt/oracle/goldengate/23ai/ogg_home)

インストール完了後、Configuration Assistant (oggca.sh) を使用してデプロイメントを作成します。

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

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


/opt/oracle/goldengate/23ai/ogg_home/bin/oggca.sh

■ Configuration Step (oggca.sh) ※ソース・ターゲットそれぞれの環境で実行します(IPアドレス等は適宜読み替えてください)。

1. Service Manager Deployment

  • Deployment Home: sm_home (例: /opt/oracle/goldengate/23ai/sm_home)
  • Host / IP address:
    • ソース側: 192.168.56.101
    • ターゲット側: 192.168.56.102
  • Port: 9000
  • Service Registration: Register as service/system daemon にチェック
  • Administrator Account:
    • Username: oggadmin
    • Password: Oracle#1234



2. User Deployment

  • Deployment Name: Deployment23ai
  • Deployment Home: dp_home (例: /opt/oracle/goldengate/23ai/dp_home)
  • TNS_ADMIN: tns_admin (例: /opt/oracle/goldengate/23ai/tns_admin)
  • Replication Schema: rep1
  • Administrator Account:
    • Same as Service Manager administrator credentials にチェック



3-3. Service Manager の起動・停止

システム登録(systemd)を行った場合、Service Manager の起動・停止は以下のコマンドで行います。

# 状態確認
systemctl status OracleGoldenGate

# 起動
systemctl start OracleGoldenGate

# 停止
systemctl stop OracleGoldenGate

4. ソースDBの設定 (26ai-gg23ais)

GoldenGate のキャプチャプロセスが動作するために必要なパラメータ設定とユーザー作成を行います。

4-1. DBパラメータ設定とサプリメンタルログ

DB 26ai / 23ai 以降、enable_goldengate_replication パラメータが重要になります。

conn / as sysdba

-- レプリケーション機能の有効化
-- 解説: 19c(19.10+)以降、GGを使用するにはTRUE設定が必須です(ライセンス制御の側面あり)
alter system set enable_goldengate_replication=true;

-- サプリメンタルログと強制ロギングの有効化 (CDB$ROOTで実行)
alter database add supplemental log data;
alter database force logging;

-- 設定反映のためログスイッチ
alter system archive log current;

-- 確認
select supplemental_log_data_min, force_logging from v$database;

4-2. GG管理者ユーザーの作成 (PDBS)

23ai 以降では、従来の権限付与に加え、シンプルなロール ogg_capture が利用可能です。

Note (複数PDB構成の場合): 今回は単一のPDB (PDBS) 内のローカルユーザーを使用していますが、複数のPDBをまとめてレプリケーション対象とする場合は、CDB全体を管理するために CDB$ROOT に共通ユーザー(例: c##ggadmin)を作成する必要があります。

alter session set container=pdbs;

-- ユーザー作成
create user ggadmins identified by oracle;
grant connect, resource to ggadmins;
alter user ggadmins quota unlimited on users;

-- GoldenGate キャプチャ用ロールの付与
-- 解説: ogg_capture は DB 23ai 以降で使用可能なロールです。
-- これ一つでキャプチャに必要な多くの権限(SELECT ANY DICTIONARY等)が網羅されています。
grant ogg_capture to ggadmins;

4-3. テスト用テーブル作成

conn ggadmins/oracle@pdbs

create table tbls (col1 number primary key, col2 varchar2(10));
insert into tbls values (1, 'AAA');
commit;

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

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

5. ターゲットDBの設定 (26ai-gg23ait)

ターゲット側では、Apply(適用)プロセス用の設定を行います。

5-1. DBパラメータ設定

ソース側と同様に実施します。

conn / as sysdba
-- GG有効化、サプリメンタルログ、強制ロギングの設定
alter system set enable_goldengate_replication=true;
alter database add supplemental log data;
alter database force logging;
alter system archive log current;

5-2. GG管理者ユーザーの作成 (PDBT)

ターゲット用には ogg_apply ロールを付与します。

alter session set container=pdbt;

-- ユーザー作成
create user ggadmint identified by oracle;
grant connect, resource to ggadmint;
alter user ggadmint quota unlimited on users;

-- GoldenGate アプライ用ロールの付与
-- 解説: ogg_apply も DB 23ai 以降で使用可能なロールです。
-- 適用プロセスに必要な権限(INSERT/UPDATE/DELETE ANY TABLE等)が含まれます。
grant ogg_apply to ggadmint;

-- 必要に応じてプロシージャレプリケーション用権限も
grant ogg_apply_procrep to ggadmint;

5-3. テスト用テーブル作成

conn ggadmint/oracle@pdbt

create table tblt (col1 number primary key, col2 varchar2(10));
insert into tblt values (1, 'AAA'); -- 初期同期用データとして合わせておく
commit;

6. GoldenGate プロセス設定と同期確認

ここからはブラウザ経由で GoldenGate Service Manager にアクセスし、Extract(抽出)および Replicat(適用)プロセスを設定します。

6-1. プロセス設定の流れ

各GUI画面では以下の値を入力して設定を進めます。 ※GUI画面は英語環境を前提としています。

■ ソース側の設定 (http://192.168.56.101:9000/)

  1. ログイン: oggadmin / Oracle#1234
  2. Deployment: Deployment23ai を選択 → Administration Service を開く
  3. DB Connection (Credential Store) の登録:
    • Alias: OracleGoldengate / ggsrc
    • User: ggadmins@192.168.56.101:1521/pdbs/oracle
    • Password: oracle
  4. TRANDATA の追加:
    • TRANDATA Information から ggadmins スキーマを追加
  5. Extract プロセスの作成:
    • Process Name: EXT01
    • Credential Alias: OracleGoldenGate / ggsrc
    • Trail Name: lt
    • Source: EXT01Running になればOK



■ ターゲット側の設定 (http://192.168.56.102:9000/)

  1. ログイン: oggadmin / Oracle#1234
  2. Deployment: Deployment23ai を選択 → Administration Service を開く
  3. DB Connection (Credential Store) の登録:
    • Alias: OracleGoldengate / ggtrg
    • User: ggadmint@192.168.56.102:1521/pdbt
    • Password: oracle
  4. Checkpoint Table の作成:
    • Checkpoint: ggadmint.chkpt を作成
  5. Replicat プロセスの作成:
    • Type: Integrated Replicat を選択
    • Process Name: REP01
    • Trail Name: rt
    • Credential Alias: OracleGoldenGate / ggtrg
    • Checkpoint Table: "GGADMINT"."CHKPT"
    • Parameter:MAP ggadmins.tbls, TARGET ggadmint.tblt;


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

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


■ 転送設定 (ソース側: http://192.168.56.101:9000/)

ターゲット側の準備完了後、ソース側に戻り転送パスを設定します。

  1. Path Connection の登録 (Distribution Service):
    • ターゲットへの接続情報を登録します。
    • Alias: ggtrg
    • User: ggadmin / Oracle#1234
  2. Distribution Path の作成:
    • Path Name: path01
    • Source Trail: EXT01 / lt
    • Target: 192.168.56.102/9003/rt/ggtrg



6-2. 動作確認 (Replication Test)

実際にソース側でデータを更新し、ターゲットへ反映されるか確認します。

ソース側 (Source: PDBS)

SQL> select * from tbls;
      COL1 COL2
---------- ----------
         1 AAA

-- データの挿入
SQL> insert into tbls values (2,'BBB');
SQL> commit;

SQL> select * from tbls;
      COL1 COL2
---------- ----------
         1 AAA
         2 BBB

ターゲット側 (Target: PDBT)

-- 即座に反映されていることを確認
SQL> select * from tblt;
      COL1 COL2
---------- ----------
         1 AAA
         2 BBB

反映されていれば、DB 26ai Free と GG 23ai を用いたレプリケーション環境の構築は完了です。

トラブルシューティング

よくあるエラーと対処法をまとめます。

事象原因と確認ポイント対処
OGG-08110ログイン失敗tnsnames.ora のエイリアス設定ミス、または Credential Store のパスワード誤りを確認。
ORA-01031権限不足ユーザー作成時に grant ogg_capture / grant ogg_apply が正しく付与されているか確認。
Connection Refusedネットワークファイアウォール設定、または /etc/hosts の名前解決を確認。ポート(デフォルト7809等)の疎通確認。

8. FAQ(よくある質問)

Q1: ogg_capture / ogg_apply ロールが見つかりません。 A1: これらのロールは Oracle Database 23ai 以降 で導入されました。19c以前のバージョンを使用している場合は、GRANT DBA TO ... や、個別に GRANT SELECT ANY DICTIONARY ... などを付与する従来の手順を使用してください。

Q2: 複数のPDBを1つのExtractプロセスで扱えますか? A2: はい、可能です。その場合は CDB$ROOT に共通ユーザー(c##ggadminなど)を作成し、そのユーザーでExtractプロセスをDBにログインさせる必要があります。パラメータファイル内で TABLE PDB1.schema.table; のように記述します。

Q3: enable_goldengate_replication はいつ設定すべきですか? A3: データベース作成後、GoldenGateを使用する前に必ず設定してください。動的パラメータなので alter system で即時反映されますが、設定し忘れるとExtractプロセスの登録時などにエラーが発生します。

まとめ

Oracle Database 26ai Free と GoldenGate 23ai の組み合わせでも、基本的な構築フローは従来のバージョンと大きく変わりません。しかし、権限周りのロール化(ogg_capture等)やパラメータ(enable_goldengate_replication)など、よりシンプルかつセキュアに管理できるよう進化しています。

  1. 26ai Free は手軽な検証環境として最適。
  2. GG 23ai は Microservices Architecture が標準。
  3. ロールベース の権限管理を活用して設定をシンプルに。

[参考]
Oracle GoldenGate 23ai – スタート・ガイド

Note: 本記事は Oracle Database 26ai Free (23.26.0) および GoldenGate 23ai を対象に解説しています。製品版や他のバージョンではパスやデフォルト設定が異なる場合があります。

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

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

コメント

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