本記事では、最新の Oracle GoldenGate 23ai を使用し、Oracle Database 26ai Free 間でデータレプリケーションを行う手順を解説します。 「最新の26ai環境でGoldenGateを試したい」「インストールから初期設定までの流れを知りたい」という方向けに、実機ログをベースにした構築ステップをまとめました。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
結論:26ai と GG 23ai の構築ステップ
Oracle Database 26ai Free と GoldenGate 23ai を連携させる最短ルートは以下の通りです。
- OS/DB準備: 26ai Free 環境を2台用意し、PDBとTNSを設定する
- GGインストール: OGG 23ai (Microservices) をインストールする
- DBパラメータ設定:
enable_goldengate_replicationを有効化する - ユーザー作成: 23ai 以降推奨のロール (
ogg_capture/ogg_apply) を付与する - プロセス設定: Service Manager 経由で Extract / Replicat を作成する
1. 検証環境の構成と前提
今回は Oracle VM VirtualBox 上の Oracle Linux 8 に、Source(転送元)と Target(転送先)の2つの環境を構築します。
| 項目 | Source (ソース) | Target (ターゲット) |
|---|---|---|
| ホスト名 | 26ai-gg23ais | 26ai-gg23ait |
| IPアドレス | 192.168.56.101 | 192.168.56.102 |
| DB Version | Oracle DB 26ai Free (23.26.0) | Oracle DB 26ai Free (23.26.0) |
| GG Version | Oracle GoldenGate 23ai (23.4.1) | Oracle GoldenGate 23ai (23.4.1) |
| CDB | FREE | FREE |
| PDB | PDBS | PDBT |
| GG User | ggadmins | ggadmint |
事前準備
- ファイアウォールは無効化済み (
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
- Username:


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/)
- ログイン:
oggadmin/Oracle#1234 - Deployment:
Deployment23aiを選択 → Administration Service を開く - DB Connection (Credential Store) の登録:
- Alias:
OracleGoldengate/ggsrc - User:
ggadmins@192.168.56.101:1521/pdbs/oracle - Password:
oracle
- Alias:
- TRANDATA の追加:
- TRANDATA Information から
ggadminsスキーマを追加
- TRANDATA Information から
- Extract プロセスの作成:
- Process Name:
EXT01 - Credential Alias:
OracleGoldenGate/ggsrc - Trail Name:
lt - Source:
EXT01が Running になればOK
- Process Name:
















■ ターゲット側の設定 (http://192.168.56.102:9000/)
- ログイン:
oggadmin/Oracle#1234 - Deployment:
Deployment23aiを選択 → Administration Service を開く - DB Connection (Credential Store) の登録:
- Alias:
OracleGoldengate/ggtrg - User:
ggadmint@192.168.56.102:1521/pdbt - Password:
oracle
- Alias:
- Checkpoint Table の作成:
- Checkpoint:
ggadmint.chkptを作成
- Checkpoint:
- 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;
- Type:













💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?
■ 転送設定 (ソース側: http://192.168.56.101:9000/)
ターゲット側の準備完了後、ソース側に戻り転送パスを設定します。
- Path Connection の登録 (Distribution Service):
- ターゲットへの接続情報を登録します。
- Alias:
ggtrg - User:
ggadmin/Oracle#1234
- Distribution Path の作成:
- Path Name:
path01 - Source Trail:
EXT01/lt - Target:
192.168.56.102/9003/rt/ggtrg
- Path Name:










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)など、よりシンプルかつセキュアに管理できるよう進化しています。
- 26ai Free は手軽な検証環境として最適。
- GG 23ai は Microservices Architecture が標準。
- ロールベース の権限管理を活用して設定をシンプルに。
[参考]
Oracle GoldenGate 23ai – スタート・ガイド
Note: 本記事は Oracle Database 26ai Free (23.26.0) および GoldenGate 23ai を対象に解説しています。製品版や他のバージョンではパスやデフォルト設定が異なる場合があります。
💰 【PR】Oracleエンジニアの市場価値、調べてみませんか?
Oracleのスキルは需要が高く、特定の資格や経験を持っていると年収が大幅にアップするケースがあります。まずはIT専門のエージェントで非公開求人をチェックしてみませんか?



コメント