Datastream は、単一のコンテナ データベース(CDB)に 1 つ以上のプラグイン対応データベース(PDB)が含まれている Oracle マルチテナント アーキテクチャをサポートしています。各プラグイン対応データベースは一意の ID と名前を持つ自己完結型のデータベースであり、個別に管理できます。
自己ホスト型の Oracle プラグイン対応データベースを構成して Datastream で使用できるようにするには、次の手順を行います。
データベースが
ARCHIVELOG
モードで実行中であることを確認します。この操作を行うには、CDB$ROOT
コンテナから次のコマンドを実行します。SELECT LOG_MODE FROM V$DATABASE;
- 結果が
ARCHIVELOG
の場合は、ステップ 2 に進みます。 - 結果が
NOARCHIVELOG
の場合は、データベースでARCHIVELOG
モードを有効にする必要があります。 SYSDBA
としてログインした場合は、次のコマンドを実行します。SHUTDOWN IMMEDIATE; STARTUP MOUNT; ALTER DATABASE ARCHIVELOG; ALTER DATABASE OPEN;
アーカイブされたログファイルはディスク容量を消費するため、データベースに DB_RECOVERY_FILE_DEST_SIZE パラメータを構成されることをお勧めします。このパラメータを使用して、ターゲット データベースの復元ファイルで使用される合計容量のハードリミット(バイト単位)を指定します。このパラメータを設定すると、ディスク容量が不足しないようにデータベースを保護する場合と、ログ位置の損失が原因でストリームが失敗する場合のトレードオフを管理できます。
- 結果が
CDB$ROOT
コンテナから次の Oracle Recovery Manager(RMAN)コマンドを実行して、データベースのデータ保持ポリシーを定義します。CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 4 DAYS;
このコマンドは、コンテナ データベース内のすべてのプラグイン対応データベースのデータ保持ポリシーを定義します。
バックアップとアーカイブのログは少なくとも 4 日間保持し、7 日間保持することをおすすめします。
Oracle ログファイルのローテーション ポリシーを構成するために使用しているデータベース ツールの SQL プロンプトに戻ります。ログファイルの最大サイズは 512 MB までに設定することをおすすめします。
追加ログデータを有効にします。これを行うには、まず、次のコマンドを実行して、
CDB$ROOT
コンテナレベルでデータベースのサプリメンタル ロギングを有効にします。ALTER DATABASE ADD SUPPLEMENTAL LOG DATA;
次に、特定のテーブルまたはプラグイン対応データベース全体のロギングを有効にするかどうかを選択します。
特定のテーブルの変更のみをログに記録するには、プラグイン対応データベース コンテナに接続し、複製するテーブルごとに次のコマンドを実行します。
ALTER TABLE SCHEMA.TABLE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS
以下を置き換えます。
- SCHEMA: テーブルを含むスキーマの名前。
- TABLE: 変更を記録するテーブルの名前。
データベース内の複数のテーブルまたはすべてのテーブルを複製するには、データベース全体でロギングを有効にすることを検討してください。
次のコマンドを実行して、データベース全体で補足ログデータを有効にします。
ALTER DATABASE ADD SUPPLEMENTAL LOG DATA (ALL) COLUMNS;
共通ユーザーを作成します。共通ユーザーは、
CDB$ROOT
コンテナとプラガブル データベースで同じ ID を持ちます。共通ユーザーは、CDB$ROOT
コンテナに接続し、コンテナ内、および権限があるプラグイン対応データベース内で操作できます。共通ユーザー名はC##
またはc##
で始まる必要があります。データベースへの接続に使用される共通ユーザーに、適切な権限を付与します。
CDB$ROOT
コンテナレベルとプラグイン対応データベース レベルでは、異なる権限が必要です。CDB$ROOT
コンテナに接続し、次のコマンドを実行します。
GRANT CREATE SESSION TO USER_NAME; GRANT SET CONTAINER TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$LOGMNR_CONTENTS TO USER_NAME; GRANT EXECUTE ON DBMS_LOGMNR TO USER_NAME; GRANT EXECUTE ON DBMS_LOGMNR_D TO USER_NAME; GRANT LOGMINING TO USER_NAME; GRANT EXECUTE_CATALOG_ROLE TO USER_NAME;
- プラグイン対応データベースに接続し、次のコマンドを実行します。
GRANT CREATE SESSION TO USER_NAME; GRANT SET CONTAINER TO USER_NAME; GRANT SELECT ANY TABLE TO USER_NAME; GRANT SELECT ON SYS.V_$DATABASE TO USER_NAME; GRANT SELECT ON SYS.V_$ARCHIVED_LOG TO USER_NAME; GRANT SELECT ON DBA_SUPPLEMENTAL_LOGGING TO USER_NAME;
共通ユーザーにデータベースの
DBA_EXTENTS
ビューに対するSELECT
アクセス権を付与します。この権限により、Oracle ソースに対してROWID
ベースのバックフィルを使用できます。GRANT SELECT ON DBA_EXTENTS TO USER_NAME;