タスク1: Oracle GoldenGateのソースおよびターゲット・データベースの構成

ソースおよびターゲットのOracle GoldenGateデータベースは、次に示す推奨事項を使用して構成する必要があります。

このタスクを完了するには、次のステップを実行します。

  • ステップ1.1 - データベース構成
  • ステップ1.2 - データベース・レプリケーション管理者ユーザーの作成
  • ステップ1.3 - データベース・サービスの作成

ステップ1.1 - データベース構成

ソースおよびターゲットのOracle GoldenGateデータベースは、次に示す推奨事項を使用して構成する必要があります。

構成 有効範囲
ARCHIVELOGモードを有効にする ソース、ターゲット
SQL> ARCHIVE LOG LIST
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            USE_DB_RECOVERY_FILE_DEST
Oldest online log sequence     110
Next log sequence to archive   113
Current log sequence           113
FORCE LOGGINGを有効にする ソース、ターゲット
ALTER DATABASE FORCE LOGGING;
ENABLE_GOLDENGATE_REPLICATION ソース、ターゲット、スタンバイ
ALTER SYSTEM SET ENABLE_GOLDENGATE_REPLICATION=TRUE SCOPE=BOTH SID='*';
サプリメンタル・ロギング

ソース

レプリケーションの逆転の場合にターゲットで必要

ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
レプリケートされたオブジェクトのスキーマまたは表レベルのログを追加する

ソース

レプリケーションの逆転の場合にターゲットで必要

ADD SCHEMATRANDATAまたはADD T

STREAMS_POOL_SIZE

ソース

レプリケーションの逆転の場合にターゲットで必要

STREAMS_POOL_SIZEの値は、次に示す値に設定する必要があります。

STREAMS_POOL_SIZE = (((#Extracts + #Integrated Replicats) * 1GB) * 1.25)

たとえば、2つのExtractと2つの統合Replicatがあるデータベースの場合は、次のようになります。

STREAMS_POOL_SIZE = 4GB * 1.25 = 5GB

ALTER SYSTEM SET STREAMS_POOL_SIZE=5G SCOPE=BOTH SID='*';

Oracle GoldenGate用にデータベースを準備するステップは、Oracle GoldenGate用のデータベースの準備を参照してください。

ステップ1.2 - データベース・レプリケーション管理者ユーザーの作成

ソースおよびターゲット・データベースには、次のように適切な権限が割り当てられたGoldenGate管理者ユーザーを作成する必要があります。

  • マルチテナント・コンテナ・データベース(CDB)の場合:
    • ソース・データベースであるGoldenGate Extractは、c##を使用してルート・コンテナ・データベース内のユーザーに接続するように構成する必要があります
    • ターゲット・データベースには、プラガブル・データベース(PDB)ごとに個別のGoldenGate管理者ユーザーが必要です。
    • Oracleマルチテナント・データベースでのGoldenGate管理者の作成の詳細は、マルチテナント・コンテナ・データベースでのOracle GoldenGateの構成を参照してください。
  • 非CDBデータベースについては、Oracle GoldenGate資格証明の確立を参照してください

ソース・データベース・システムでoracle OSユーザーとして、次のSQL命令を実行してOracle GoldenGateのデータベース・ユーザーを作成し、必要な権限を割り当てます。

[oracle@exadb1_node1 ~]$ sqlplus / as sysdba

# Source CDB
SQL>
alter session set container=cdb$root;
create user c##ggadmin identified by "<ggadmin_password>" container=all default tablespace USERS temporary tablespace temp;
alter user c##ggadmin quota unlimited on users;
grant set container to c##ggadmin container=all;
grant alter system 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');

# Source PDB
SQL>
alter session set container=<pdbName>;
create user ggadmin identified by "<ggadmin_password>" container=current;
grant create session to ggadmin container=current;
grant alter any table to ggadmin container=current;
grant resource to ggadmin container=current;
exec dbms_goldengate_auth.grant_admin_privilege('ggadmin');

ターゲット・データベース・システムでoracle OSユーザーとして、次のSQL命令を実行してOracle GoldenGateのデータベース・ユーザーを作成し、必要な権限をそれに割り当てます。

[oracle@exadb2_node1 ~]$ sqlplus / as sysdba

# Target PDB
SQL>
alter session set container=<pdbName>;
create user ggadmin identified by "<ggadmin_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 dv_goldengate_admin, dv_goldengate_redo_access to ggadmin container=current;
exec dbms_goldengate_auth.grant_admin_privilege('ggadmin');

ステップ1.3 - データベース・サービスの作成

ソース・データベースとターゲット・データベースがOracle Data Guardを使用するOracle RACクラスタで推奨構成を実行している場合は、ExtractまたはReplicatプロセスが適切なData Guardプライマリ・データベース・インスタンスに接続できるロールベースのサービスを作成する必要があります。

ソース・マルチテナント・データベースを使用する場合は、ルート・コンテナ・データベース(CDB)とレプリケートされるスキーマを含むプラガブル・データベース(PDB)に、個別のサービスが必要です。ターゲット・マルチテナント・データベースの場合は、PDBに単一のサービスが必要です。

プライマリおよびスタンバイ・データベース・システムのoracle OSユーザーとして、次のコマンドを使用してCDBデータベース・サービスを作成および開始します。

[oracle@exadb1_node1 ~]$ srvctl add service -db <dbName>
 -service <dbName>_goldengate -preferred <ORACLE_SID1> -available <ORACLE_SID2>
 -role PRIMARY

プライマリおよびスタンバイ・データベース・システムでoracle OSユーザーとして、次のコマンドを使用してPDBデータベース・サービスを作成し開始します。

[oracle@exadb1_node1 ~]$ srvctl add service -db <dbName>
 -service <dbName>_<pdbName>_goldengate -preferred <ORACLE_SID1>
 -available <ORACLE_SID2> -pdb <pdbName> -role PRIMARY

プライマリおよびスタンバイ・データベース・システムのoracle OSユーザーとして、次に示すように、開始してサービスを実行していることを確認します。

[oracle@exadb1_node1 ~]$ srvctl start service -db <dbName> -role
[oracle@exadb1_node1 ~]$ srvctl status service -db <dbName> |grep goldengate

Service <dbName>_goldengate  is running on instance(s) <SID1>
Service <dbName>_<pdbName>_goldengate is running on instance(s) <SID1>

ノート:

ソースおよびターゲット・データベース・システムでステップ1.3を繰り返します。