Amazon RDS での Oracle GoldenGate の使用 - Amazon Relational Database Service

Amazon RDS での Oracle GoldenGate の使用

Oracle GoldenGate (GoldenGate) を使用すると、データベース間でトランザクションデータを収集、レプリケート、管理することができます。このツールは、ログベースの変更データキャプチャ (CDC) であり、オンライントランザクション処理 (OLTP) システムの Oracle データベースで使用されるレプリケーションソフトウェアパッケージです。GoldenGate によって、ソースデータベースで最近変更されたデータを含んでいるトレイルファイルが作成され、これらのファイルがターゲットデータベースにプッシュされます。Amazon RDS で GoldenGate を使用することで、アクティブなデータベース間でのレプリケーション、ダウンタイムのない移行とアップグレード、災害対策、データ保護、およびリージョン内のレプリケーションとリージョン間でのレプリケーションを行うことができます。

Amazon RDS の GoldenGate を使用する場合は、次の点を考慮してください。

  • お客様には、Amazon RDS で使用するために、GoldenGate を設定および管理する責任があります。

  • お客様には、すべての AWS リージョンで、Amazon RDS で使用するために、GoldenGate ライセンス (自分のライセンスを使用) を管理する責任があります。詳細については、「Oracle のライセンス」を参照してください。

  • Amazon RDS は、Oracle Database Standard Edition Two (SE2)、Standard Edition One (SE1)、Standard Edition (SE)、Enterprise Edition (EE) 用の GoldenGate をサポートしています。

  • Amazon RDS は、データベースバージョン 11.2.0.4、12.1.0.2、12.2.0.1、18.0.0.0、および 19.0.0 で GoldenGate をサポートしています。

  • Amazon RDS は、GoldenGate バージョン 11.2.1 以降 (12.1、12.2、および 12.3) をサポートしています。

  • Amazon RDS は、GoldenGate を使用する Oracle データベース間での移行とレプリケーションをサポートしています。また、異機種データベース間での移行やレプリケーションはサポートしていませんが、お客様がこのような操作を行うことは禁止していません。

  • Oracle Transparent Data Encryption (TDE) を使用する Amazon RDS Oracle DB インスタンスで、GoldenGate を使用できます。レプリケートされたデータの整合性を維持するには、EBS 暗号化ボリュームまたはトレイルファイル暗号化を使用して GoldenGate ハブの暗号化を設定する必要があります。また、GoldenGate ハブとソースデータベースおよびターゲットデータベースインスタンスの間で送信されるデータの暗号化も設定する必要があります。Amazon RDS Oracle DB インスタンスは、Oracle Secure Sockets Layer または Oracle ネイティブネットワーク暗号化 を使用する暗号化をサポートしています。

  • 統合キャプチャモードを使用する場合、GoldenGate DDL は、GoldenGate バージョン 12.1 以降でサポートされています。

概要

Amazon RDS で使用される GoldenGate アーキテクチャは、3 つの独立したモジュールで構成されています。ソースデータベースには、オンプレミスの Oracle データベース、Amazon EC2 インスタンス上の Oracle データベース、Amazon RDS DB インスタンス上の Oracle データベースを使用できます。また、GoldenGate ハブも操作します。このハブは、トランザクション情報をソースデータベースからターゲットデータベースに移動します。ハブは次のいずれかになります。

  • Oracle Database と GoldenGate がインストールされた Amazon EC2 インスタンス

  • オンプレミスの Oracle インストール。

Amazon EC2 ハブは複数使用できます。クロスリージョンレプリケーションで GoldenGate を使用する場合は、2 つのハブを使用することをお勧めします。

ターゲットデータベースは、 Amazon RDS DB インスタンス、 Amazon EC2 インスタンス、オンプレミスの場所のいずれかに配置できます。

Amazon RDS で GoldenGate を使用する場合は、次の一般的なシナリオがサポートされます。

シナリオ 1: オンプレミスの Oracle ソースデータベースとオンプレミスの GoldenGate ハブを使用し、ターゲットとなる Amazon RDS DB インスタンスにデータを提供します。


			Amazon RDS を使用する GoldenGate の設定 0

シナリオ 2: ソースデータベースとして機能するオンプレミスの Oracle データベースを Amazon EC2 インスタンスハブに接続し、ターゲットとなる Amazon RDS DB インスタンスにデータを提供します。


			Amazon RDS を使用する GoldenGate の設定 1

シナリオ 3: Amazon RDS DB インスタンス上の Oracle データベース (ソースデータベースとして機能) を Amazon EC2 インスタンスハブに接続し、ターゲットとなる Amazon RDS DB インスタンスにデータを提供します。


			Amazon RDS を使用する GoldenGate の設定 2

シナリオ 4: Amazon EC2 インスタンス上の Oracle データベース (ソースデータベースとして機能) を Amazon EC2 インスタンスハブに接続し、ターゲットとなる Amazon RDS DB インスタンスにデータを提供します。


			Amazon RDS を使用する GoldenGate の設定 3

シナリオ 5: 同じ AWS リージョンの Amazon EC2 インスタンスハブに接続された Amazon RDS DB インスタンスの Oracle データベース。このシナリオでは、ハブは別の AWS リージョンの Amazon EC2 インスタンスハブに接続されています。この 2 番目のハブは、2 番目の Amazon EC2 インスタンスハブと同じ AWS リージョン内のターゲット Amazon RDS DB インスタンスにデータを提供します。


			Amazon RDS を使用する GoldenGate の設定 4
注記

オンプレミス環境で実行中の GoldenGate に影響する問題は、AWS で実行中の GoldenGate にも影響します。GoldenGate ハブを監視し、フェイルオーバーが発生した場合に EXTRACTREPLICAT が再起動されるのを確認することを強くお勧めします。GoldenGate ハブは Amazon EC2 インスタンスで実行されるため、Amazon RDS では GoldenGate ハブが管理されず、実行中であるかどうかを確認できません。

Amazon RDS で GoldenGate を使用して、Oracle のメジャーバージョンにアップグレードすることができます。たとえば、Amazon RDS で GoldenGate を使用して、オンプレミスデータベースの Oracle バージョン 8 から、Amazon RDS DB インスタンスで実行中の Oracle データベースのバージョン 11.2.0.4 にアップグレードすることができます。

Amazon RDS を使用して GoldenGate をセットアップするには、Amazon EC2 インスタンス上にハブを設定し、ソースデータベースとターゲットデータベースを設定します。次のステップは、Amazon RDS で使用する GoldenGate のセットアップ方法を示しています。各ステップの詳細は、以下のセクションで説明します。

Amazon EC2 の GoldenGate ハブのセットアップ

Amazon EC2 インスタンスに GoldenGate ハブを作成するには、いくつかの手順を完了します。まず、Oracle RDBMS の完全なクライアントインストールで Amazon EC2 インスタンスを作成します。Oracle バージョン 11.2.0.4 には、パッチ 13328193 をインストールします。Amazon EC2 インスタンスには、Oracle GoldenGate ソフトウェアもインストールしている必要があります。正確なソフトウェアのバージョンは、ソースおよびターゲットのデータベースのバージョンにより決定されます。GoldenGate のインストールの詳細については、「Oracle のドキュメント」を参照してください。

GoldenGate ハブとして機能する Amazon EC2 インスタンスは、ソースデータベースのトランザクション情報をトレイルファイルに保存し、処理します。このプロセスをサポートするには、トレイルファイルを保存するのに十分なストレージが割り当てられていることを確認してください。また、処理中のデータ量を管理するのに十分な処理能力が Amazon EC2 インスタンスにあることを確認します。さらに、トレイルファイルに書き込む前に、EC2 インスタンスにトランザクション情報を保存するのに十分なメモリがあることを確認してください。

次のタスクでは、Amazon EC2 インスタンスの GoldenGate ハブをセットアップします。各タスクの詳細は、このセクションで説明します。

  1. GoldenGate サブディレクトリを作成します。

  2. GLOBALS パラメータファイルを更新します。

  3. mgr.prm ファイルを設定し、manager を起動します。

Amazon EC2 コマンドラインシェルおよび ggsci (GoldenGate のコマンドインタープリタ) を使用して、GoldenGate ディレクトリ内にサブディレクトリを作成します。サブディレクトリは gg ディレクトリの下に作成され、パラメータ、レポート、チェックポイントの各ファイル用のディレクトリが含まれます。

prompt$ cd /gg prompt$ ./ggsci GGSCI> CREATE SUBDIRS

Amazon EC2 コマンドラインシェルを使用して、GLOBALS パラメータファイルを作成します。すべての GoldenGate プロセスに影響するパラメータは、GLOBALS パラメータファイルで定義されます。次の例では、必要なファイルを作成します。

$ cd $GGHOME $ vi GLOBALS CheckpointTable oggadm1.oggchkpt

GoldenGate ハブのセットアップと設定の最後のステップでは、manager を設定します。mgr.prm ファイルに次の行を追加し、ggsci を使用して manager を起動します。

PORT 8199 PurgeOldExtracts ./dirdat/*, UseCheckpoints, MINKEEPDAYS 5
GGSCI> start mgr

以上のステップを完了すると、GoldenGate ハブを使用できる状態になります。次に、ソースデータベースとターゲットデータベースをセットアップします。

Amazon RDS の GoldenGate で使用するためのソースデータベースのセットアップ

ソースデータベースが 11.2.0.4 以降のバージョンを実行している場合、以下のタスクを完了し、GoldenGate で使用するソースデータベースをセットアップします。

  1. compatible パラメータを 11.2.0.4 以降に設定します。

  2. ENABLE_GOLDENGATE_REPLICATION パラメータを True に設定します。このパラメータによって、ソースデータベースのサプリメンタルロギングが有効になります。ソースデータベースが Amazon RDS DB インスタンスにある場合、ENABLE_GOLDENGATE_REPLICATION パラメータを true に設定して、DB インスタンスにパラメータグループを割り当てる必要があります。ENABLE_GOLDENGATE_REPLICATION パラメータの詳細については、Oracle のドキュメントを参照してください。

  3. GoldenGate ソースデータベースに関するアーカイブされた REDO ログの保持期間を設定します。

  4. ソースデータベースに GoldenGate ユーザーアカウントを作成します。

  5. GoldenGate ユーザーに必要な権限を付与します。

  6. GoldenGate ハブの ソースデータベースの TNS エイリアスを tnsnames.ora ファイルに追加します。

ソース DB に互換性を設定する

ソースデータベースの COMPATIBLE 初期化パラメータが 11.2.0.4 以降に設定されていることを確認します。Amazon RDS DB インスタンスの Oracle データベースをソースとして使用する場合は、COMPATIBLE を 11.2.0.4 以降に設定したパラメータグループが DB インスタンスに関連付けられていることを確認します。DB インスタンスに関連付けられているパラメータグループの COMPATIBLE パラメータを変更した場合は、変更を反映させるためにインスタンスを再起動してください。

次の Amazon RDS CLI コマンドを使用して、新しいパラメータグループを作成し、COMPATIBLE パラメータを設定します。新しいパラメータグループは、ソース DB インスタンスと関連付ける必要があります。

Linux、macOS、Unix の場合:

aws rds create-db-parameter-group \ --db-parameter-group-name example-goldengate \ --description "Parameters to allow GoldenGate" \ --db-parameter-group-family oracle-ee-11.2 aws rds modify-db-parameter-group \ --db-parameter-group-name example-goldengate \ --parameters "ParameterName=compatible, ParameterValue=11.2.0.4, ApplyMethod=pending-reboot" aws rds modify-db-instance \ --db-instance-identifier example-test \ --db-parameter-group-name example-goldengate \ --apply-immediately aws rds reboot-db-instance \ --db-instance-identifier example-test

Windows の場合:

aws rds create-db-parameter-group ^ --db-parameter-group-name example-goldengate ^ --description "Parameters to allow GoldenGate" ^ --db-parameter-group-family oracle-ee-11.2 aws rds modify-db-parameter-group ^ --db-parameter-group-name example-goldengate ^ --parameters "ParameterName=compatible, ParameterValue=11.2.0.4, ApplyMethod=pending-reboot" aws rds modify-db-instance ^ --db-instance-identifier example-test ^ --db-parameter-group-name example-goldengate ^ --apply-immediately aws rds reboot-db-instance ^ --db-instance-identifier example-test

パラメータグループは COMPATIBLE パラメータを含めて保持する必要があります。DB スナップショットからインスタンスを復元する場合は、上で設定した値と等しいか大きい COMPATIBLE パラメータ値を指定したパラメータグループを使用するように、復元されたインスタンスを変更します。復元操作の後、できるだけ早くこの変更を行います。インスタンスの再起動が必要です。

ソース DB での補足ログの有効化

ENABLE_GOLDENGATE_REPLICATION パラメータを True に設定すると、ソースデータベースのサプリメンタルロギングが有効になり、必要な GoldenGate の権限が設定されます。ソースデータベースが Amazon RDS DB インスタンスにある場合、ENABLE_GOLDENGATE_REPLICATIONtrue に設定して、DB インスタンスにパラメータグループを割り当てる必要があります。ENABLE_GOLDENGATE_REPLICATION の詳細については、Oracle のドキュメントを参照してください。

ソース DB でのログの保持期間を設定する

ソースデータベースでは、アーカイブされた REDO ログを保持する必要もあります。たとえば、アーカイブ REDO ログの保持期間を 24 時間に設定します。

exec rdsadmin.rdsadmin_util.set_configuration('archivelog retention hours',24);

ログの保持期間を時間単位で指定します。この期間は、ソースインスタンスの潜在的なダウンタイム、潜在的な通信期間、ソースインスタンスのネットワーク問題の潜在的な期間を超える必要があります。このような期間により、Oracle GoldenGate は必要に応じてソースインスタンスからログを復元できます。

ログの保持で絶対的に必要となる最小時間は、1 時間です。ログの保持を有効にしていない場合や、保持期間の値が小さすぎる場合、次のメッセージが表示されます。

2014-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 1306Not able to establish initial position for begin time 2014-03-06 06:16:55.

ログは DB インスタンスに保持されます。ファイル用の十分なストレージがインスタンスにあることを確認します。過去 X 時間で使用した領域の量を確認するには、次のクエリを使用します。X は時間数に置き換えてください。

SELECT SUM(BLOCKS * BLOCK_SIZE) BYTES FROM V$ARCHIVED_LOG WHERE NEXT_TIME>=SYSDATE-X/24 AND DEST_ID=1;

ソースにユーザーアカウントを作成する

GoldenGate はデータベースユーザーとして実行され、ソースデータベースの REDO ログとアーカイブログにアクセスするには、適切なデータベース権限が必要です。これらを指定するには、ソースデータベースに GoldenGate ユーザーアカウントを作成します。GoldenGate のユーザーアカウントに関する権限の詳細については、Oracle のドキュメントのセクション 4、セクション 4.4、および表 4.1 を参照してください。

次のステートメントでは、oggadm1 という名前のユーザーアカウントが作成されます。

CREATE TABLESPACE administrator; CREATE USER oggadm1  IDENTIFIED BY "password"   DEFAULT TABLESPACE ADMINISTRATOR TEMPORARY TABLESPACE TEMP;

ソース DB にアカウント権限を付与する

SQL コマンド grantrdsadmin.rdsadmin_util プロシージャ grant_sys_object を使用して、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;

最後に、GoldenGate 管理者になるためにユーザーアカウントに必要な権限を付与します。許可の実行に使用するパッケージ (dbms_goldengate_auth または rdsadmin_dbms_goldengate_auth) は、Oracle DB エンジンのバージョンによって異なります。

  • Oracle 12.2 より前の Oracle DB バージョンの場合は、次の PL/SQL プログラムを実行します。

    exec dbms_goldengate_auth.grant_admin_privilege (grantee=>'OGGADM1', privilege_type=>'capture', grant_select_privileges=>true, do_grants=>TRUE);
  • Oracle 12.2 以降の Oracle DB バージョンでは、パッチレベル 12.2.0.1.ru-2019-04.rur-2019-04.r1 以降を必要とする場合は、次の 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 を使用します。

ソース DB の TNS エイリアスの追加

EXTRACT プロセスで使用する Oracle Home で、次のエントリを $ORACLE_HOME/network/admin/tnsnames.ora に追加します。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=(SID=ORCL)) )

Amazon RDS の GoldenGate で使用するためのターゲットデータベースのセットアップ

以下のタスクでは、GoldenGate で使用するためにターゲット DB インスタンスをセットアップします。

  1. compatible パラメータを 11.2.0.4 以降に設定する

  2. ENABLE_GOLDENGATE_REPLICATION パラメータを TRUE に設定します。ターゲットデータベースが Amazon RDS DB インスタンスにある場合、ENABLE_GOLDENGATE_REPLICATION パラメータを TRUE に設定して、DB インスタンスにパラメータグループを割り当てる必要があります。ENABLE_GOLDENGATE_REPLICATION パラメータの詳細については、Oracle のドキュメントを参照してください。

  3. ターゲットデータベースで GoldenGate のユーザーアカウントを作成し、管理する

  4. GoldenGate ユーザーに必要な権限を付与する

  5. ターゲットデータベースの TNS エイリアスを GoldenGate ハブの tnsnames.ora に追加します。

ターゲット DB でのユーザーアカウントの作成

GoldenGate はデータベースユーザーとして動作し、適切なデータベース権限が必要です。これらがあることを確認するには、ターゲットデータベースに GoldenGate ユーザーアカウントを作成します。

次のステートメントでは、oggadm1 という名前のユーザーが作成されます。

CREATE TABLESPACE administrator; CREATE TABLESPACE administrator_idx; CREATE USER oggadm1  IDENTIFIED BY "password" DEFAULT TABLESPACE administrator TEMPORARY TABLESPACE temp; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator; ALTER USER oggadm1 QUOTA UNLIMITED ON administrator_idx;

ターゲット DB に対するアカウント権限の付与

ターゲット DB の 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;

最後に、GoldenGate 管理者になるためにユーザーアカウントに必要な権限を付与します。許可の実行に使用するパッケージ (dbms_goldengate_auth または rdsadmin_dbms_goldengate_auth) は、Oracle DB エンジンのバージョンによって異なります。

  • Oracle 12.2 より前の Oracle DB バージョンの場合は、次の PL/SQL プログラムを実行します。

    exec dbms_goldengate_auth.grant_admin_privilege (grantee=>'OGGADM1', privilege_type=>'capture', grant_select_privileges=>true, do_grants=>TRUE);
  • Oracle 12.2 以降の Oracle DB バージョンでは、パッチレベル 12.2.0.1.ru-2019-04.rur-2019-04.r1 以降を必要とする場合は、次の 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 を使用します。

ターゲット DB の TNS エイリアスの追加

REPLICAT プロセスで使用する Oracle Home で、次のエントリを $ORACLE_HOME/network/admin/tnsnames.ora に追加します。tnsname.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=(SID=ORCL)) )

GoldenGate の EXTRACT と REPLICAT ユーティリティを使用する

GoldenGate のユーティリティである EXTRACTREPLICAT は連携して動作し、トレイルファイルを使った増分トランザクションのレプリケーションを利用して、ソースデータベースとターゲットデータベースの同期を維持します。ソースデータベースで行われたすべての変更は EXTRACT によって自動的に検出され、その後整形されて、オンプレミスの GoldenGate または EC2 インスタンスハブ上のトレイルファイルに転送されます。トレイルファイルの初回の読み取りが完了すると、REPLICAT ユーティリティによってデータがこれらのファイルから読み取られ、ターゲットデータベースにレプリケートされます。

GoldenGate EXTRACT ユーティリティの実行

EXTRACT ユーティリティは、ソースデータベースのデータを取得、変換して、トレイルファイルに出力します。EXTRACT​ は、トランザクションの詳細情報をメモリまたは一時ディスクストレージ上のキューに入れます。トランザクションがソースデータベースにコミットされると、EXTRACT はトランザクションの詳細をすべてトレイルファイルにフラッシュします。トレイルファイルは、これらの詳細をオンプレミスまたは EC2 インスタンスハブにルーティングしてから、ターゲットデータベースにルーティングします。

次のタスクは、EXTRACT ユーティリティを有効にして起動します。

  1. GoldenGate ハブ (オンプレミスまたは EC2 インスタンス) にある EXTRACT パラメータファイルを設定します。サンプルの EXTRACT パラメータファイルを次に示します。

    EXTRACT EABC SETENV (ORACLE_SID=ORCL) SETENV (NLSLANG=AL32UTF8)   USERID oggadm1@OGGSOURCE, PASSWORD XXXXXX EXTTRAIL /path/to/goldengate/dirdat/ab   IGNOREREPLICATES GETAPPLOPS TRANLOGOPTIONS EXCLUDEUSER OGGADM1   TABLE EXAMPLE.TABLE;
  2. GoldenGate ハブで、GoldenGate コマンドラインインターフェイス (ggsci) を起動します。ソースデータベースにログインします。次の例は、ログインの形式を示しています。

    dblogin userid <user>@<db tnsname>
  3. データベースのチェックポイントテーブルを追加します。

    add checkpointtable
  4. データベーステーブルのサプリメンタルロギングを有効にするために、transdata を追加します。

    add trandata <user>.<table>

    また、データベースのすべてのテーブルについてサプリメンタルロギングを有効にするように、transdata を追加することもできます。

    add trandata <user>.*
  5. ggsci コマンドラインを使用する場合、次のコマンドを使用して、EXTRACT ユーティリティを有効にします。

    add extract <extract name> tranlog, INTEGRATED tranlog, begin now add exttrail <path-to-trail-from-the param-file> extract <extractname-from-paramfile>, MEGABYTES Xm
  6. アーカイブログが削除されないように、データベースに EXTRACT ユーティリティを登録します。これにより、以前のコミットされていないトランザクションを必要に応じて復旧できます。データベースに EXTRACT ユーティリティを登録するには、次のコマンドを使用します。

    register EXTRACT <extract process name>, DATABASE
  7. EXTRACT ユーティリティを起動するには、次のコマンドを使用します。

    start <extract process name>

GoldenGate REPLICAT ユーティリティの実行

REPLICAT ユーティリティは、トレイルファイルのトランザクション情報をターゲットデータベースに「プッシュ」するために使用されます。

次のタスクは、REPLICAT ユーティリティを有効にして起動します。

  1. GoldenGate ハブ (オンプレミスまたは EC2 インスタンス) にある REPLICAT パラメータファイルを設定します。サンプルの REPLICAT パラメータファイルを次に示します。

    REPLICAT RABC SETENV (ORACLE_SID=ORCL) SETENV (NLSLANG=AL32UTF8)   USERID oggadm1@OGGTARGET, password XXXXXX   ASSUMETARGETDEFS MAP EXAMPLE.TABLE, TARGET EXAMPLE.TABLE;
  2. GoldenGate コマンドラインインターフェイス (ggsci) を起動します。ターゲットデータベースにログインします。次の例は、ログインの形式を示しています。

    dblogin userid <user>@<db tnsname>
  3. ggsci コマンドラインを使用して、チェックポイントテーブルを追加します。ここで指定するユーザーは、ターゲットテーブルスキーマの所有者ではなく、GoldenGate のユーザーアカウントであることが必要です。次の例では、gg_checkpoint という名前のチェックポイントテーブルを作成します。

    add checkpointtable <user>.gg_checkpoint 
  4. REPLICAT ユーティリティを有効にするには、次のコマンドを使用します。

    add replicat <replicat name> EXTTRAIL <extract trail file> CHECKPOINTTABLE <user>.gg_checkpoint 
  5. REPLICAT ユーティリティを起動するには、次のコマンドを使用します。

    start <replicat name>

Amazon RDS で GoldenGate を使用する場合の問題のトラブルシューティング

このセクションでは、Amazon RDS で GoldenGate を使用する場合に発生する最も一般的な問題について説明します。

ログの保持

Amazon RDS でOracle GoldenGateを操作するには、ログの保持が有効になっていることを確認します。

ログの保持期間を時間単位で指定します。この期間は、ソースインスタンスの潜在的なダウンタイム、潜在的な通信期間、ソースインスタンスのネットワーク問題の潜在的な期間を超える必要があります。このような期間により、Oracle GoldenGate は必要に応じてソースインスタンスからログを復元できます。

ログの保持で絶対的に必要となる最小時間は、1 時間です。ログの保持を有効にしていない場合や、保持期間の値が小さすぎる場合、次のメッセージが表示されます。

2014-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 1306Not able to establish initial position for begin time 2014-03-06 06:16:55.

GoldenGate は適切に設定されているようですが、レプリケーションが機能していません

既存のテーブルに関して、開始 SCN を GoldenGate に指示する必要があります。この問題を解決するには、次の手順に従います。

  1. GoldenGate コマンドラインインターフェイス (ggsci) を起動します。ソースデータベースにログインします。次の例は、ログインの形式を示しています。

    dblogin userid <user>@<db tnsname>
  2. ggsci コマンドラインを使用して、EXTRACT プロセスの開始 SCN を設定します。次の例では、extract の SCN を 223274 に設定しています。

    ALTER EXTRACT <extract process name> SCN 223274 start <extract process name>
  3. ターゲットデータベースにログインします。次の例は、ログインの形式を示しています。

    dblogin userid <user>@<db tnsname>
  4. ggsci コマンドラインを使用して、REPLICAT プロセスの開始 SCN を設定します。次の例では、REPLICAT の SCN を 223274 に設定しています。

    start <replicat process name> atcsn 223274