Oracle GoldenGate のセットアップ
Amazon RDS を使用して Oracle GoldenGate をセットアップするには、Amazon EC2 インスタンス上にハブを設定し、ソースデータベースとターゲットデータベースを設定します。以下のセクションは、Amazon RDS for Oracle で使用するために Oracle GoldenGate を設定する方法を示しています。
トピック
Amazon EC2 での Oracle GoldenGate ハブのセットアップ
Amazon EC2 インスタンスに Oracle GoldenGate ハブを作成するには、まず Oracle RDBMS の完全なクライアントインストールで Amazon EC2 インスタンスを作成します。Amazon EC2 インスタンスには、Oracle GoldenGate ソフトウェアもインストールしている必要があります。Oracle GoldenGate ソフトウェアのバージョンは、ソースおよびターゲットのデータベースのバージョンにより決定されます。Oracle GoldenGate のインストールの詳細については、Oracle GoldenGate のドキュメント
Oracle GoldenGate ハブとして機能する Amazon EC2 インスタンスは、ソースデータベースのトランザクション情報をトレイルファイルに保存し、処理します。このプロセスをサポートするには、次の要件を満たしていることを確認してください。
-
トレイルファイル用に十分なストレージを割り当てています。
-
Amazon EC2 インスタンスには、データ量を管理するのに十分な処理能力がある。
-
トレイルファイルに書き込む前に、EC2 インスタンスにトランザクション情報を保存するのに十分なメモリがある。
Amazon EC2 インスタンスに Oracle GoldenGate クラシックアーキテクチャハブを設定するには
-
Oracle GoldenGate ディレクトリにサブディレクトリを作成します。
Amazon EC2 コマンドラインシェルで、Oracle GoldenGate コマンドインタープリタ
ggsci
を起動します。CREATE SUBDIRS
コマンドは、パラメータ、レポート、チェックポイントの各ファイル用の/gg
ディレクトリの下にサブディレクトリを作成します。prompt$ cd /gg prompt$ ./ggsci GGSCI> CREATE SUBDIRS
-
mgr.prm
ファイルを設定します。次の例では、
$GGHOME/dirprm/mgr.prm
ファイルに行を追加します。PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
-
マネージャーを起動します。
次の例では、
ggsci
を起動し、start mgr
コマンドを実行します。GGSCI> start mgr
これで、Oracle GoldenGate ハブを使用する準備ができました。
Amazon RDS の Oracle GoldenGate 用の出典データベースのセットアップ
Oracle GoldenGate で使用するソースデータベースを設定するには、次のタスクを実行します。
セットアップステップ
ステップ 1: ソースデータベースでの補足的なログ記録を有効にする
最小限のデータベースレベルの補足的なログ記録を有効にするには、次の PL/SQL プロシージャを実行します。
EXEC rdsadmin.rdsadmin_util.alter_supplemental_logging(p_action => 'ADD')
ステップ 2: ENABLE_GOLDENGATE_REPLICATION 初期化パラメータを true に設定する
ENABLE_GOLDENGATE_REPLICATION
初期化パラメータを true
に設定すると、データベースサービスが論理レプリケーションをサポートできるようになります。ソースデータベースが Amazon RDS DB インスタンスにある場合、ENABLE_GOLDENGATE_REPLICATION
インストールパラメータを true
に設定して、DB インスタンスにパラメータグループを割り当てる必要があります。ENABLE_GOLDENGATE_REPLICATION
の初期化パラメータの詳細については、Oracle Database のドキュメント
ステップ 3: ソースデータベースでのログの保持期間を設定する
アーカイブされた REDO ログを保持するようにソースデータベースを必ず設定してください。以下のガイドラインを検討します。
-
ログの保持期間を時間単位で指定します。最小値は 1 時間です。
-
この期間は、ソース DB インスタンスの潜在的なダウンタイム、潜在的な通信期間、ソースインスタンスのネットワーク問題の潜在的な期間を超えるように設定します。このような期間により、Oracle GoldenGate は必要に応じて出典インスタンスからログを復元できます。
-
ファイル用の十分なストレージがインスタンスにあることを確認します。
例えば、アーカイブ REDO ログの保持期間を 24 時間に設定します。
EXEC rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24)
ログの保持を有効にしていない場合や、保持の値が小さすぎる場合、次のようなエラーメッセージが表示されます。
2022-03-06 06:17:27 ERROR OGG-00446 error 2 (No such file or directory) opening redo log /rdsdbdata/db/GGTEST3_A/onlinelog/o1_mf_2_9k4bp1n6_.log for sequence 1306 Not able to establish initial position for begin time 2022-03-06 06:16:55.
DB インスタンスにはアーカイブされた REDO ログが保持されるため、ファイル用の十分なスペースがあることを確認してください。過去 num_hours
時間で使用した領域の量を確認するには、num_hours
を時間数に置き換えて、次のクエリを実行します。
SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG WHERE NEXT_TIME>=SYSDATE-
num_hours
/24 AND DEST_ID=1;
ステップ 4: ソースデータベースに Oracle GoldenGate ユーザーアカウントを作成する
Oracle GoldenGate はデータベースユーザーとして実行され、出典データベースの REDO ログとアーカイブ REDO ログにアクセスするには、適切なデータベース権限が必要です。これらを指定するには、ソースデータベースにユーザーアカウントを作成します。Oracle GoldenGate のユーザーアカウントに関するアクセス許可の詳細については、Oracle のドキュメント
次のステートメントでは、oggadm1
という名前のユーザーアカウントが作成されます。
CREATE TABLESPACE administrator; CREATE USER oggadm1 IDENTIFIED BY "
password
" DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
注記
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。
ステップ 5: ソースデータベースでユーザーに特権を付与する
このタスクでは、ソースデータベースでデータベースユーザーに必要なアカウント権限を付与します。
ソースデータベースでユーザーに特権を付与するには
-
SQL コマンド
grant
とrdsadmin.rdsadmin_util
プロシージャgrant_sys_object
を使用して、Oracle GoldenGate ユーザーアカウントに必要な権限を付与します。次のステートメントでは、oggadm1
という名前のユーザーに権限が付与されます。GRANT CREATE SESSION, ALTER SESSION TO oggadm1; GRANT RESOURCE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT FLASHBACK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT SELECT_CATALOG_ROLE TO
rds_master_user_name
WITH ADMIN OPTION; EXEC rdsadmin.rdsadmin_util.grant_sys_object ('DBA_CLUSTERS', 'OGGADM1'); GRANT EXECUTE ON DBMS_FLASHBACK TO oggadm1; GRANT SELECT ON SYS.V_$DATABASE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1; -
Oracle GoldenGate 管理者になるためにユーザーアカウントに必要な権限を付与します。以下の PL/SQL プログラムを実行します。
EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'capture', grant_select_privileges => true, do_grants => TRUE);
権限を取り消すには、同じパッケージのプロシージャ
revoke_admin_privilege
を使用します。
ステップ 6: ソースデータベースに TNS エイリアスを追加する
$ORACLE_HOME/network/admin/tnsnames.ora
プロセスで使用する Oracle Home で、次のエントリを EXTRACT
に追加します。tnsnames.ora
ファイルの詳細については、Oracle のドキュメント
OGGSOURCE= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-source.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )
Amazon RDS で Oracle GoldenGate 用のターゲットデータベースをセットアップする
このタスクでは、Oracle GoldenGate で使用するターゲット DB インスタンスを設定します。
セットアップステップ
ステップ 1: ENABLE_GOLDENGATE_REPLICATION 初期化パラメータを true に設定する
ENABLE_GOLDENGATE_REPLICATION
初期化パラメータを true
に設定すると、データベースサービスが論理レプリケーションをサポートできるようになります。ソースデータベースが Amazon RDS DB インスタンスにある場合、ENABLE_GOLDENGATE_REPLICATION
インストールパラメータを true
に設定して、DB インスタンスにパラメータグループを割り当てる必要があります。ENABLE_GOLDENGATE_REPLICATION
の初期化パラメータの詳細については、Oracle Database のドキュメント
ステップ 2: ターゲットデータベースで GoldenGate のユーザーアカウントを作成する
Oracle GoldenGate はデータベースユーザーとして動作し、適切なデータベース権限が必要です。これらの権限があることを確認するには、ターゲットデータベースにユーザーアカウントを作成します。
次のステートメントでは、oggadm1
という名前のユーザーを作成します。
CREATE TABLESPSACE administrator; CREATE USER oggadm1 IDENTIFIED BY "
password
" DEFAULT TABLESPACE administrator TEMPORARY TABLESPACE temp; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator;
注記
セキュリティ上のベストプラクティスとして、ここに示されているプロンプト以外のパスワードを指定してください。
ステップ 3: ターゲットデータベースでアカウント権限を付与する
このタスクでは、ターゲットデータベースでデータベースユーザーに必要なアカウント権限を付与します。
ターゲットデータベースでユーザーに特権を付与するには
-
ターゲットデータベースの Oracle GoldenGate ユーザーアカウントに必要な権限を付与します。次の例では、
oggadm1
に権限を付与します。GRANT CREATE SESSION TO oggadm1; GRANT ALTER SESSION TO oggadm1; GRANT CREATE CLUSTER TO oggadm1; GRANT CREATE INDEXTYPE TO oggadm1; GRANT CREATE OPERATOR TO oggadm1; GRANT CREATE PROCEDURE TO oggadm1; GRANT CREATE SEQUENCE TO oggadm1; GRANT CREATE TABLE TO oggadm1; GRANT CREATE TRIGGER TO oggadm1; GRANT CREATE TYPE TO oggadm1; GRANT SELECT ANY DICTIONARY TO oggadm1; GRANT CREATE ANY TABLE TO oggadm1; GRANT ALTER ANY TABLE TO oggadm1; GRANT LOCK ANY TABLE TO oggadm1; GRANT SELECT ANY TABLE TO oggadm1; GRANT INSERT ANY TABLE TO oggadm1; GRANT UPDATE ANY TABLE TO oggadm1; GRANT DELETE ANY TABLE TO oggadm1;
-
Oracle GoldenGate 管理者になるためにユーザーアカウントに必要な権限を付与します。以下の PL/SQL プログラムを実行します。
EXEC rdsadmin.rdsadmin_dbms_goldengate_auth.grant_admin_privilege ( grantee => 'OGGADM1', privilege_type => 'apply', grant_select_privileges => true, do_grants => TRUE);
権限を取り消すには、同じパッケージのプロシージャ
revoke_admin_privilege
を使用します。
ステップ 4: ターゲットデータベースに TNS エイリアスを追加する
$ORACLE_HOME/network/admin/tnsnames.ora
プロセスで使用する Oracle Home で、次のエントリを REPLICAT
に追加します。Oracle マルチテナントデータベースの場合、TNS エイリアスが PDB のサービス名を指していることを確認してください。tnsnames.ora
ファイルの詳細については、Oracle のドキュメント
OGGTARGET= (DESCRIPTION= (ENABLE=BROKEN) (ADDRESS_LIST= (ADDRESS=(PROTOCOL=TCP)(HOST=goldengate-target.abcdef12345.us-west-2.rds.amazonaws.com)(PORT=8200))) (CONNECT_DATA=(SERVICE_NAME=ORCL)) )