目的
Oracle GoldenGate 23ai よりClassic Architectureはサポートされなくなり、
Microservice Architecture構成が必須となりました。
インストール手順を確認し、Microservice Architecture構成を理解することが目的です。
全体概要図
カテゴリ | バージョン |
---|---|
OS | Oracle Linux 9.5 |
DB | Oracle Database 19.25 |
インスタンス名 | orcl(非CDB) |
1. Oracle Software Delivery Cloud から GoldenGate 23.4 for Oracle (x86-64) を入手
ファイル名:V1042871-01.zip
https://www.oracle.com/jp/middleware/technologies/goldengate-downloads.html
2. サーバに転送し、解凍
任意のディレクトリにファイルと転送し、解凍
[oracle@ol95db19c ~]$ ls -la |grep V1042871-01.zip
-rw-r--r--. 1 oracle oinstall 517531573 2月 8 2025 V1042871-01.zip
[oracle@ol95db19c ~]$ unzip V1042871-01.zip
(中略)
inflating: OGGCORE_Release_Notes_23.4.1.24.05.pdf
inflating: OGG-23ai-README.txt
3. GoldenGateインストーラ(runInstaller)実行
GGHOME用のディレクトリを作成し選択
/u01/app/oracle/product/goldengate/23ai
インストール完了
4. 環境変数の設定
インストールユーザ(oracle)に環境変数を設定
export OGG_HOME=/u01/app/oracle/product/goldengate/23ai/
export TNS_ADMIN=/u01/app/oracle/product/goldengate/23ai/lib/instantclient/network/admin
※GoldenGateが利用するtnsnames.oraの格納ディレクトリ。
Databaseで利用するtnsnames.oraと共有も可($ORACLE_HOME/network/admin)
5. Oracle GoldenGate Configuration Assistant(oggca.sh)実行
5-1. サービス・マネージャ・デプロイメント
項目 | 値 |
---|---|
ソフトウェア・ホーム | /u01/app/oracle/product/goldengate/23ai |
ホスト名/IPアドレス | 192.168.56.10 |
ポート | 9000 |
サービス/システム・デーモンとして登録 | チェックあり |
セキュリティの有効化 | チェックなし |
- 【参考】マニュアル:デプロイメントの追加
https://docs.oracle.com/cd/G13662_01/coredoc/deploy-add-deployment.html
5-2. サービス・マネージャ管理者
GoldenGate管理者(ggadmin)を指定
5-3. ユーザー・デプロイメント
項目 | 値 |
---|---|
デプロイメント名 | dep01 |
デプロイメント・ホーム | /u01/app/oracle/product/goldengate/dp/dep01 |
管理サービス | 9001 |
分散サービス | 9002 |
レシーバ・サービス | 9003 |
パフォーマンスメトリック・サービス | 9004 |
TNS_ADMIN | /u01/app/oracle/product/goldengate/23ai/lib/instantclient/network/admin |
レプリケーション・スキーマ | ggadmin |
「環境変数」で環境変数を設定されることを確認
※TNS_ADMINは実行ユーザ(oracle)の環境変数(TNS_ADMIN)設定が反映(設定されていない場合、空白)
5-4. ユーザー・デプロイメント管理者
5-5. サマリー
5-6. サービス・マネージャのシステム・デーモンとしての登録
[root@ol95db19c bin]# pwd
/u01/app/oracle/product/goldengate/dp/dphome/bin
[root@ol95db19c bin]# ls -la
合計 4
drwxr-x---. 2 oracle oinstall 39 1月 28 16:56 .
drwxr-x---. 5 oracle oinstall 39 1月 28 16:56 ..
-rwxr-x---. 1 oracle oinstall 2069 1月 28 16:56 registerServiceManager.sh
[root@ol95db19c bin]# ./registerServiceManager.sh
Copyright (c) 2017, 2024, Oracle and/or its affiliates. All rights reserved.
----------------------------------------------------
Oracle GoldenGate Install As Service Script
----------------------------------------------------
OGG_HOME=/u01/app/oracle/product/goldengate/23ai
OGG_CONF_HOME=/u01/app/oracle/product/goldengate/dp/dphome/etc/conf
OGG_VAR_HOME=/u01/app/oracle/product/goldengate/dp/dphome/var
OGG_USER=oracle
Running OracleGoldenGateInstall.sh...
Created symlink /etc/systemd/system/multi-user.target.wants/OracleGoldenGate.service → /etc/systemd/system/OracleGoldenGate.service.
6. ソースデータベースサーバ設定
6-1. hostsの設定(rootユーザ)
hostsにソースデータベースサーバおよびターゲットデータベースサーバの設定を記載
192.168.56.10 ol95db19c.dev ol95db19c
192.168.56.13 ol95db19c3.dev ol95db19c3
6-2. tnsnames.oraの設定(oracleユーザ)
TNS_ADMINで設定したディレクトリにtnsnames.oraを作成
[oracle@ol95db19c ~]$ cd /u01/app/oracle/product/goldengate/23ai/lib/instantclient/
[oracle@ol95db19c instantclient]$ ls
fips.so libclntsh.so.23.1 libnnz.so libociei.so libsqlplus.so libtfojdbc1.so sqlplus
legacy.so libclntshcore.so.23.1 libocci.so.23.1 libocijdbc23.so libsqlplusic.so pkcs11.so
[oracle@ol95db19c instantclient]$ mkdir -p network/admin
[oracle@ol95db19c instantclient]$ cd /u01/app/oracle/product/goldengate/23ai/lib/instantclient/network/admin
[oracle@ol95db19c admin]$ vi tnsnames.ora
orcl=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol95db19c.dev)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.dev)
)
)
orcl3=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = ol95db19c3.dev)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl.dev)
)
)
6-3. enable_goldengate_replication の設定
Oracle GoldenGateが使用するRDBMSサービスを有効にするパラメータ
主に、サプリメンタル・ロギングを制御
- 参考:マニュアル
ENABLE_GOLDENGATE_REPLICATION
[oracle@ol95db19c ~]$ sqlplus / as sysdba;
SQL> show parameter goldengate
NAME TYPE VALUE
------------------------------------ --------------------- ------------
enable_goldengate_replication boolean FALSE
resource_manage_goldengate boolean FALSE
SQL> alter system set enable_goldengate_replication=true;
システムが変更されました。
SQL> show parameter goldengate
NAME TYPE VALUE
------------------------------------ ---------------------- -----------------
enable_goldengate_replication boolean TRUE
resource_manage_goldengate boolean FALSE
6-4. ログ設定(最小サプリメンタルロギング・強制ロギングモード)
オプション | 機能 | 要否 |
---|---|---|
最小サプリメンタル・ロギング | 行連鎖情報をREDOログに追加 | 必須 |
強制ロギング・モード | ロギングを強制 | 強く推奨 |
- 参考:マニュアル トランザクション・ログの設定と要件
https://docs.oracle.com/cd/G13662_01/coredoc/prepare-transaction-logs-settings-and-requirements-ogg-oracle.html#GUID-5AE33689-FB01-4499-B678-5D5731F39C3B
SQL> select supplemental_log_data_min from v$database;
SUPPLEMENTAL_LOG_DATA_MI
------------------------
NO
SQL> ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
データベースが変更されました。
SQL> select supplemental_log_data_min from v$database;
SUPPLEMENTAL_LOG_DATA_MI
------------------------
YES
SQL> select force_logging from v$database;
FORCE_LOGGING
------------------------------------------------------------------
NO
SQL> ALTER DATABASE FORCE LOGGING;
データベースが変更されました。
SQL> select force_logging from v$database;
FORCE_LOGGING
------------------------------------------------------------------
YES
6-5. GoldenGate管理ユーザ(ggadmin)の作成
ターゲットDBでも同様の手順を実施
SQL> create user ggadmin identified by oracle;
ユーザーが作成されました。
SQL> grant dba to ggadmin;
権限付与が成功しました。
6-6. 転送用スキーマ(u1)および表(t1)の作成
ターゲットDBでも同様の手順を実施
SQL> create user u1 identified by u1;
ユーザーが作成されました。
SQL> grant dba to u1;
権限付与が成功しました。
SQL> conn u1;
パスワードを入力してください:
接続されました。
SQL> create table t1(c1 number, c2 varchar2(10));
表が作成されました。
7. GoldenGate設定(ソースデータベース)
7-1. ブラウザでソースデータベースの管理サービスに接続
- 管理サービス
http://192.168.56.10:9001
GoldenGate管理ユーザ(ggadmin)でサインイン
7-2. DB接続の追加
- 参考:マニュアル
データベース接続の追加
項目 | 値 |
---|---|
資格証明ドメイン | OracleGoldenGate |
資格証明別名 | db0 ※接続先DBの別名を設定 |
ユーザID | ggadmin@orcl ※tnsnames.oraに設定した接続識別子 |
7-3. Trandataの追加
スキーマ単位(または表単位)にサプリメンタルロギングを設定
- マニュアル:ExtractプロセスおよびReplicatプロセスを追加する前に
https://docs.oracle.com/cd/G13662_01/coredoc/configure-ogg-adding-extract-and-replicat.html
左ペインから DB接続 - db0(ソースデータベース接続)- trandata を選択
TRANDATA情報 右の「+」を押下
転送用に作成したスキーマ名(u1)を入力して「発行」
※スケジュール列:表の主キー、すべてのユニークキー、すべての外部キー
- 参考:マニュアル インタフェース・リファレンス ADD TRANDATA
https://docs.oracle.com/cd/G13662_01/gclir/add-trandata.html
7-4. EXTRACTの追加
Extract:ソース・データベースに接続して、データを抽出(取得)するプロセス
- 参考:マニュアル:Oracle Database用のExtractの追加
https://docs.oracle.com/ja-jp/iaas/goldengate/doc/add-extract-odb.html
②抽出オプション
項目 | 入力値 |
---|---|
ドメイン | OracleGoldenGateを選択 |
別名 | DB接続で指定した別名を指定(db0) |
Extract証跡 | 任意の文字列を指定(so) |
⑤パラメータ・ファイル
Extractグループのパラメータ設定:対象表(u1)を追加
EXTRACT ex01
USERIDALIAS db0 DOMAIN OracleGoldenGate
EXTTRAIL so
TABLE u1.*; ←追加
8. GoldenGate設定(ターゲットデータベース)
8-1. DB接続の作成
項目 | 値 |
---|---|
資格証明ドメイン | OracleGoldenGate |
資格証明別名 | db3 ※接続先DBの別名を設定 |
ユーザID | ggadmin@orcl3 ※tnsnames.oraに設定した接続識別子 |
作成した接続(db3)右の「→」を押下し接続。
エラーが発生せず、チェックポイントに遷移することを確認
8-2. チェックポイント表の作成
ターゲットデータベース接続(db3)チェックポイントを選択→「+」を押下して追加
8-3. REPLICATの追加
- 参考:マニュアル:Oracle Database用のReplicatの追加
https://docs.oracle.com/ja-jp/iaas/goldengate/doc/add-replicat-odb.html
①Replicat Information
- Replicatタイプ パラレルReplicat(デフォルト)を選択
- 参考:各Replicatの差異
https://speakerdeck.com/oracle4engineer/oracle-goldengate-20240702-session03-ocs?slide=5 - プロセス名を指定(rep01)
②Replicat Options
項目 | 入力値 |
---|---|
名前 | 任意の文字列を指定(so) |
ドメイン | OracleGoldenGateを選択 |
別名 | DB接続の別名(db3) |
チェックポイント表 | 作成済のチェックポイント表を選択 |
開始 | 今すぐ |
9.データ連携
ソースDBの対象表にデータを挿入しcommit
ターゲットDBの対象表にデータが反映されることを確認
SQL> select * from t1;
レコードが選択されませんでした。
SQL> select * from t1;
レコードが選択されませんでした。
SQL> insert into t1 values (1, 'a');
1行が作成されました。
SQL> commit;
コミットが完了しました。
SQL> select * from t1;
C1 C2
---------- ------------------------------
1 a
SQL> select * from t1;
C1 C2
---------- ------------------------------
1 a
参考リンク
- Oracle GoldenGate 23ai for Oracle 簡易インストール #oracle - Qiita
https://qiita.com/TDM26587/items/64efd8f124fe745dd5f5 - Oracle GoldenGate 23ai 導入Tips - Speaker Deck
https://speakerdeck.com/oracle4engineer/oracle-goldengate-23ai-dao-ru-tips - 【Oracle GoldenGate 最新情報&テクニカルセミナー】[Session03] コンサルタントが語るプロジェクトからの学び - Speaker Deck
https://speakerdeck.com/oracle4engineer/oracle-goldengate-20240702-session03-ocs
エラー対応1:管理サービスに接続できない
ブラウザから管理サービスに接続できない場合、firewallが原因の可能性があります。
必要なポート設定をすることで接続できるようになりました。
このサイトにアクセスできません
192.168.56.10 からの応答時間が長すぎます。
[root@ol95db19c ~]# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3 enp0s8
sources:
services: cockpit dhcpv6-client ssh
ports:
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
[root@ol95db19c ~]# firewall-cmd --add-port=9000-9100/tcp --permanent
success
[root@ol95db19c ~]# firewall-cmd --reload
success
[root@ol95db19c ~]# firewall-cmd --list-all --zone=public
public (active)
target: default
icmp-block-inversion: no
interfaces: enp0s3 enp0s8
sources:
services: cockpit dhcpv6-client ssh
ports: 9000-9100/tcp ★
protocols:
forward: yes
masquerade: no
forward-ports:
source-ports:
icmp-blocks:
rich rules:
エラー対応2:DB接続時にエラー
tnsnames.oraが正しく設定されていない可能性があります。
エラー対応3:extractが起動しない
作成したextractをデータベースに登録
[oracle@ol95db19c bin]$ pwd
/u01/app/oracle/product/goldengate/23ai/bin
[oracle@ol95db19c bin]$ ./adminclient
Oracle GoldenGate Administration Client for Oracle
Version 23.4.1.24.05 OGGCORE_23.4.0.0.0OGGR_LINUX.X64_240529.0500_FBO
Copyright (C) 1995, 2024, Oracle and/or its affiliates. All rights reserved.
Linux, x64, 64bit (optimized) on May 29 2024 09:21:59
オペレーティング・システムの文字セットはUTF-8と識別されました。
OGG (接続されていません) 3> CONNECT http://192.168.56.10:9031 DEPLOYMENT dep03 AS ggadmin PASSWORD oracle
OGG (http://192.168.56.10:9031 dep03) 4>
OGG (http://192.168.56.10:9031 dep03) 4> dblogin useridalias db0
データベースに正常にログインしました。
OGG (http://192.168.56.10:9031 dep03 as db0@ORCL) 5> register extract ext01 database
2025-01-29T08:14:17Z INFO OGG-02003 ExtractグループEXT01がSCN 2326113でデータベースに正常に登録されました。