Oracle GoldenGate Microservices Architectureによるデータ・レプリケーションの設定
ノート:
このクイックスタートでは、初期ロードによるインスタンス化は実行しません。また、ソース・エンドポイントとターゲット・エンドポイントで表とデータが同じであることを前提としています。この図のソース・データベースとターゲット・データベースは、コンテナ・データベースおよびプラガブル・データベース(PDB)のことを指しています。
コンテナ・データベース(CDB$ROOT)のプロセス名 | プラガブル・データベース(DBEAST)のプロセス名 | プラガブル・データベース(DBWEST)のプロセス名 |
---|---|---|
|
|
|
Oracle Multitenant Databaseの権限の構成と設定
Oracleデータベースで、Oracle GoldenGateでのレプリケーションを有効にし、CDBレベルおよびプラガブル・データベース(PDB)レベルでデータベース・ユーザーに権限を割り当てる必要があります。
データベースはARCHIVELOG
モードであり、FORCE LOGGING
およびサプリメンタル・ロギングが有効になっています。コンテナ・データベースの場合は、次の権限を共通ユーザー(cdb$root
)に割り当てます。
## CGGNORTH DATABASE SETUP AT CDB LEVEL
ALTER SESSION SET CONTAINER=cdb$root;
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE;
ALTER SYSTEM SET STREAMS_POOL_SIZE=2G;
ALTER DATABASE FORCE LOGGING;
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
ARCHIVE LOG LIST;
CREATE TABLESPACE GG_DATA DATAFILE '+DATA' SIZE 100M AUTOEXTEND ON NEXT 100M;
CREATE USER c##ggadmin IDENTIFIED BY PASSWORD CONTAINER=ALL DEFAULT TABLESPACE GG_DATA TEMPORARY TABLESPACE TEMP;
GRANT ALTER SYSTEM TO c##ggadmin CONTAINER=ALL;
GRANT DBA TO c##ggadmin CONTAINER=ALL;
GRANT CREATE SESSION TO c##ggadmin CONTAINER=ALL;
GRANT ALTER ANY TABLE TO c##ggadmin CONTAINER=ALL;
GRANT RESOURCE TO c##ggadmin CONTAINER=ALL;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE(' c##ggadmin ',CONTAINER=>'ALL');
DBEAST
)ALTER SESSION SET CONTAINER=dbeast;
CREATE TABLESPACE GG_DATA DATAFILE '+DATA' SIZE 100M AUTOEXTEND ON NEXT 100M;
CREATE USER ggadmin IDENTIFIED BY PASSWORD CONTAINER=CURRENT;
GRANT CREATE SESSION TO ggadmin CONTAINER=CURRENT;
GRANT ALTER ANY TABLE TO ggadmin CONTAINER=CURRENT;
GRANT RESOURCE TO ggadmin CONTAINER=CURRENT;
GRANT DBA TO ggadmin CONTAINER=CURRENT;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin');
DBWEST
):ALTER SESSION SET CONTAINER=dbwest;
CREATE USER ggadmin IDENTIFIED BY PASSWORD CONTAINER=CURRENT;
GRANT ALTER SYSTEM TO ggadmin CONTAINER=CURRENT;
GRANT CREATE SESSION TO ggadmin CONTAINER=CURRENT;
GRANT ALTER ANY TABLE TO ggadmin CONTAINER=CURRENT;
GRANT RESOURCE TO ggadmin CONTAINER=CURRENT;
GRANT DBA TO ggadmin CONTAINER=CURRENT;
GRANT DV_GOLDENGATE_ADMIN, DV_GOLDENGATE_REDO_ACCESS TO GGADMIN CONTAINER=CURRENT;
EXEC DBMS_GOLDENGATE_AUTH.GRANT_ADMIN_PRIVILEGE('ggadmin');
ノート:
DBA
ロールの付与は、すべてのユーザーに必須なわけではありません。権限は、ユーザーがデータベースで実行する必要がある操作に応じて付与する必要があります。たとえば、トランザクションを挿入、更新および削除するDML操作権限をggadmin
に付与するには、GRANT ANY INSERT/UPDATE/DELETE
権限を使用し、さらに、DML操作の一部として表および索引を操作することをユーザーに許可するには、GRANT CREATE/DROP/ALTER ANY TABLE/INDEX
権限を使用します。このクイックスタートでは、データベース・ユーザーがデータベース管理者であると想定しています。特定の権限要件の詳細は、「Oracle Database 21c以前のユーザー権限の付与」および「マルチテナント・コンテナ・データベースの構成」を参照してください。
Oracle GoldenGate MAのWebインタフェースからのレプリケーション・プロセスの構成
データ・レプリケーション・プロセスには、Extractプロセス、Replicatプロセス、および分散パス(DISTPATH
)または受信側パスあるいはターゲット開始パス(RECVPATH
)が含まれます。
次のステップを使用すると、データ取得(Extract)および適用(Replicat)プロセスを構成できます。レプリケーションが開始されているかどうかもテストできます。DISTPATH
プロセスは、この構成には使用されません。
ステップ1: Administration Serviceからのデータベース資格証明の追加
この項では、EZConnectを使用してソースおよびターゲット・データベースに接続するためのデータベース資格証明を追加します。
-
前のセッションで作成した、データベース・ユーザー資格証明を準備しておいてください。それらを使用して、Oracle GoldenGateをデータベース・サーバーに接続します。
-
WebブラウザでService Managerのログイン・ページを開き、Oracle GoldenGate管理者ユーザーの資格証明を使用してService Managerにログインします。初めてログインする場合は、Oracle GoldenGate Configuration Assistantウィザードでデプロイメントを追加したときに作成した、管理者アカウントのユーザー資格証明を使用してログインする必要があります。
-
Service Managerの概要ページで、デプロイメントのAdministration Serviceのポート番号をクリックします。
これにより、Administration Serviceのログイン・ページが開きます。
-
Service Managerへのログインに使用したのと同じ資格証明を使用して、Administration Serviceにログインします。Administration Serviceの概要ページが表示されます。
-
アプリケーション・ナビゲーションアイコンをクリックして左側のナビゲーション・ペインを開き、構成をクリックして構成ページのデータベースタブを開きます。
-
資格証明セクション内のプラス(+)記号をクリックしてデータベース・ユーザーの資格証明の追加を開始します。
-
コンテナ・データベース(CDB)およびプラガブル・データベース(PDB)について接続を追加する必要があります。各CDBは、配信(Replicat)のための、ソース・データベースおよびPDBからの取得(Extract)に使用されます。
EZconnect構文を使用してデータベース接続を構成します。EZConnect構文を使用するには、ユーザー名、パスワード、ホスト名、ポート番号およびサービス名の接続情報が必要です。
ユーザーIDフィールドに指定する必要がある構文を次に示します。
username@hostname:port/service_name
EZConnectを使用してユーザーIDを設定する例を次に示します。
c##ggadmin@dc.example.com:1521/dc1.example.com
次の画面では、資格証明リストに追加されたユーザー
c#ggadmin
に接続するためのデータベース資格証明(cggnorth)が示されています。DBEAST
PDBへの接続用の別名(ggeast
)について、追加されている資格証明を確認することもできます。 -
アクション列内の青いアイコンをクリックしてデータベースに接続します。接続に成功すると、そのアイコンが青色になります。
データベースに接続すると、チェックポイント表、TRANDATAおよびハートビート表を追加するためのセクションが表示されます。
ステップ2: TRANDATA、ハートビート表およびチェックポイント表の追加
この項では、ソース・データベースのTRANDATAを追加して、REDOログへの情報の書込みを有効にします。これにより、ソース・データベースに追加された行が、ターゲット・データベースで一意に識別され、更新されるようになります。ソース・データベースとターゲット・データベースのハートビート表を追加して、ラグの可能性がないかモニターします。また、ターゲット・データベースのチェックポイント表を追加して、障害が発生した場合にExtractプロセスおよびReplicatプロセスが障害発生時点から再開できるようにします。
-
TRANDATAをソース接続に追加します。TRANDATA情報セクションを使用してデータベース・ロギングのプロパティを設定します。これは、サプリメンタル・ロギングを有効にし、データがデータベースのREDOログに書き込まれるようにするための必要なステップです。
TRANDATAを追加した後は、検索アイコンを使用して、TRANDATAを追加したスキーマを検索できます。これにより、TRANDATA情報が表示されます。次の図は、プラガブル・データベース
DBEAST
内のHR
スキーマのTRANDATA情報を示しています。
スキーマ、表またはプロシージャ・レベルでロギング・プロパティを構成するステップについては、ロギング・プロパティの構成を参照してください。
-
Replicatのチェックポイント表を設定するには、資格証明セクションからターゲット・データベース資格証明(ggwest)に接続する必要があります。
-
プラス記号(+)をクリックしてターゲット(プラガブル)データベースのチェックポイント表を追加します。
発行をクリックします。チェックポイント表が追加されます。
ハートビート表の作成の詳細は、「Extractを作成する前に」の項も参照してください。
-
ggeastおよびggwestデータベース資格証明別名に接続することで、ソースおよびターゲット・エンドポイントの両方について、ハートビート表を追加します。プラス記号をクリックしてハートビート表を追加します。
-
ハートビートのオプションを調整した後、送信をクリックします。
ステップ3: Extractの追加
この項では、Extractプロセス(exte)を追加します。Extractプロセスにより、ソース・データベースからデータを取得し、それを証跡ファイル(ea)に書き込みます。
-
Administration Serviceの左側のナビゲーション・ペインから「概要」オプションをクリックし、「Extract」セクションのプラス記号(+)をクリックします。
-
Extractの追加ウィザードから、統合Extractを選択します。
ノート:
Replicatを作成する前の、レプリケーション・プロセスを初めて開始するときに、初期ロードExtractを作成する必要があります。初期ロードExtractおよびそのユースケースの詳細は、「管理クライアントを使用した初期ロードExtractの追加」を参照してください。 -
次をクリックし、Extractオプション画面でExtractのオプションを指定します。Extractを追加する詳細なステップは、「プライマリExtractの追加」の項を参照してください。
プラガブル・データベースのExtractを作成する場合は、資格証明のドメインおよび別名を入力するとすぐに、PDBに登録オプションが表示されます。レプリケーションに使用する、コンテナ・データベース内のPDBを選択します。
-
Extractのオプションを入力したら、次をクリックします。次の画面には、Extract設定の確認に役立つExtractパラメータ・ファイルが表示されます。
Extract exteのExtractパラメータ・ファイルを次に示します。EXTRACT exte USERIDALIAS cggnorth DOMAIN OracleGoldenGate EXTTRAIL east/ea SOURCECATALOG DBEAST DDL INCLUDE MAPPED TABLE hr.*;
これらの設定を確認し、必要に応じてExtract構成を更新します。
マルチテナント・データベースの場合は、複数のプラガブル・データベースから単一の証跡に取得する、Extractのエントリを追加する必要があります。パラメータ・ファイルにおいて、
TABLE
文とSEQUENCE
文でcontainer.schema.object
という形式の3つの部分からなる完全修飾名を使用して、またはSOURCECATALOG
パラメータで2つの部分からなる名前schema.object
を使用して、ソース・オブジェクトを指定する必要があります。 -
作成および実行をクリックしてExtractを開始します。
ステップ4: Replicatの追加
この項では、Replicatプロセス(repe)を追加します。Replicatプロセスにより、Extractによって作成された証跡ファイル(ea)からターゲット・データベースに、変更データを配信します。Replicatにより、ターゲット・データベースにある証跡ファイルを読み取り、DML操作またはDDL操作を再構成し、それらをターゲット・データベースに適用します。
-
Replicatを追加する前に、ggwestデータベース資格証明に接続して、ターゲット・データベース(DBWEST)のチェックポイント表を追加してあることを確認してください。
-
ターゲット・データベースにデータを配信するReplicatのタイプを選択します。ウィザードに従ってReplicatの追加を完了します。「Replicatの追加」を参照してください。
-
Replicatオプション画面でパラレル非統合Replicatのオプションを入力します。
- 次をクリックしてReplicatパラメータ・ファイル画面を表示します。指定したパラメータはすべてここで確認できます。
マルチテナント・コンテナ・データベースの場合、Replicatは1つのプラガブル・データベースにのみ適用できます。正しいものを指定するには、
USERID
またはUSERIDALIAS
パラメータで指定するデータベース・ユーザーにSQL*Net接続文字列を使用します。たとえば、ggadmin@DBWEST
です。パラメータ・ファイルで、MAP
文のTARGET
の部分に、schema.object
のみを指定します。MAP
の部分で、3つの部分からなる名前の複数のプラガブル・データベースからキャプチャされるソース・オブジェクトを識別するか、2つの部分からなる名前のSOURCECATALOG
パラメータを使用します。Replicatパラメータ・ファイルのサンプルを次に示します。
REPLICAT repe USERIDALIAS ggwest DOMAIN OracleGoldenGate --DDL EXCLUDE ALL DDLERROR default discard REPERROR (default,discard) DDLOPTIONS REPORT SOURCECATALOG DBEAST MAP hr.*, TARGET hr.*;
Replicatが正常に開始された後、Administration Serviceの概要ページで、実行中状態のExtractプロセスおよびReplicatプロセスを確認できます。
ステップ5: レプリケーションのテスト
-
Extract (exte)のセクションからアクションをクリックし、詳細をクリックします。
-
「統計」タブをクリックします。このページ内の挿入、更新または削除列が加算されていることがわかります。
また、Replicatの詳細オプションを使用して統計タブを確認します。それらの更新が表の統計セクションに表示されています。
親トピック: クイックスタート