Oracle ポリシー ストアのレプリケート

並列移行モデルおよび Oracle エクスポート機能を使用して、ポリシー ストアの移行を設定し、ポリシー ストアに継承します。このレプリケーションは、r12.x ポリシー ストアから並列の r12.x ポリシー ストアへの移行を容易にします。レプリケーションによって、スキーマとデータ ディクショナリが設定され、ユーザ定義データが新しいポリシー ストアに移行されます。
casso11jp
並列移行モデルおよび Oracle エクスポート機能を使用して、ポリシー ストアの移行を設定し、ポリシー ストアに継承します。このレプリケーションは、r12.x ポリシー ストアから並列の r12.x ポリシー ストアへの移行を容易にします。レプリケーションによって、スキーマとデータ ディクショナリが設定され、ユーザ定義データが新しいポリシー ストアに移行されます。
このセクションでは、以下の用語が使用されます。
  • ソース:
    データの移行元の r12.x ポリシー サーバおよびポリシー ストア。
  • ターゲット:
    データの移行先の r12.x ポリシー サーバおよびポリシー ストア。
警告:
ターゲット ポリシー サーバは、同じポリシー サーバ暗号化キーを使用して設定します。このキーは、ポリシー ストア内の機密データを復号化するために使用されます。暗号化キーで暗号化されたデータは、同じキーを使用しない限り、ターゲット ポリシー ストアで復号化することはできません。キーが異なる場合は、すべての機密データを再入力する必要があります。機密データには、ユーザ ストア管理者パスワード、トラステッド ホストの共有秘密キー(エージェントを再登録する必要があります)、4.x エージェント パスワード、すべての
Single Sign-On
管理者のパスワードなどが含まれます。
注:
データは、r12.0 SP3 cr11 ソース ポリシー ストアから、r12.x ポリシー サーバによって使用されるよう設定されている並列 Oracle DB に移行されました。
Oracle の準備
このプロセスを開始する前に、以下の要件に注意してください。
  1. ソースおよびターゲット インスタンスがすでに作成されている。
  2. ターゲット インスタンスに、ソース データベースと同じ名前で作成されたテーブルスペースがある。
  3. すべてのポリシー ストア オブジェクト(テーブル、インデックス、シーケンス)用の同じスキーマ所有者がすでにターゲット データベース上で作成されています。スキーマ所有者には、ソース データベースと同じ権限が必要です。
注:
このトピックでは、
Oracle 11g
で 1 つのデータベースから別のデータベースにテーブルスペースを移動する場合の手順を示します。
Oracle ソース インスタンスの準備
  1. エクスポートを実行するユーザに、このタスクを完了するのに十分な権限があることを確認します。エクスポートを適用するために以下の権限を付与できます。
    GRANT EXPORT FULL DATABASE TO USER;
  2. データベース サーバ上にディレクトリを作成します。これは、Oracle エクスポートによって、エクスポートのログ ファイルと共にエクスポートされた DMP ファイルを保存するために使用されます。
  3. エクスポートを実行するユーザに、そのディレクトリに対する書き込み権限があることを確認します。
  4. 物理的な場所をポイントする Oracle データベース上のディレクトリを作成します。次のコマンドを SQL*Plus または Oracle SQL Developer で使用します。
    CREATE DIRECTORY directory_name AS 'path of the physical directory as created in step 2';
    grant read, write on directory directory_name to user_to_execute_export;
  5. このスキーマ用のパブリック シノニムをデータベース上で再作成します。この手順は、以下のスクリプトによって実行できます。
    DECLARE
    BEGIN
     FOR I IN (SELECT T.OWNER,T.TABLE_NAME
                 FROM DBA_TABLES T
                WHERE T.OWNER = '
    schema
    ') LOOP
       EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM  '||I.TABLE_NAME||' FOR
    '||I.OWNER||'.'||I.TABLE_NAME;
     END LOOP;
    END;
    /
Oracle ターゲット インスタンスの準備
  1. エクスポートを実行するユーザに、このタスクを完了する権限があることを確認します。エクスポートを適用するために以下の権限を付与できます。
    GRANT IMPORT FULL DATABASE TO USER;
  2. データベース サーバ上にディレクトリを作成します。これは、Oracle によって、DMP ファイルをデータベースにインポートする際にファイルを読み取るために使用されます。ソースおよびターゲットのデータベースが同じボックスにある場合は、この部分をスキップできます。
  3. インポートを実行するユーザに、そのディレクトリに対する読み取り権限があることを確認します。
  4. 物理的な場所をポイントする Oracle データベース上の
    ディレクトリ
    を作成します。次のコマンドを SQL*Plus または Oracle SQL Developer で使用します。
    CREATE DIRECTORY directory_name AS 'path of the physical directory as created in step 2';
    grant read, write on directory directory_name to user_to_execute_import;
Oracle テーブルスペースのレプリケート
ソース データベースからターゲット データベースへのデータ レプリケーションを実行するには、ソースおよびターゲットの両方のインスタンスが関与する以下の手順を使用します。
ソース データベース
ソース データベース上で、エクスポート コマンドを実行してエクスポートを開始し、サーバ上の DMP ファイルにテーブルスペースを格納します。Windows サーバの場合は CMD、Linux または UNIX システムの場合はターミナル ウィンドウを使用して、以下のコマンドを実行します。
expdp user/password@dbname tablespaces=tablespace_name directory=
directory_name
 dumpfile=file_name.dmp logfile=logfile_name.log
完了したら、生成されたログ ファイルを確認します。ログ ファイルは、DMP ファイルと共にサーバ上で作成されたディレクトリ内にあります。エクスポートが正常に行われ、Oracle エラーのないことを確認します。
ログ ファイルの例を以下に示します。
Export: Release 11.1.0.6.0 - Production on Friday, 30 January, 2015 13:28:14
 
Copyright (c) 2003, 2007, Oracle.  All rights reserved.
;;;
Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
Starting "YOUSSEF"."SYS_EXPORT_TABLESPACE_01":  user/********@dbinstance tablespaces=tablespace_name directory=directory_name dumpfile=file_name.dmp logfile=fiel_name.log
Estimate in progress using BLOCKS method...
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 4.937 MB
Processing object type TABLE_EXPORT/TABLE/TABLE
Processing object type TABLE_EXPORT/TABLE/INDEX/INDEX
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type TABLE_EXPORT/TABLE/TRIGGER
Processing object type TABLE_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "SMPSDBA"."XPSPROPERTY"                     411.4 KB   14646 rows
. . exported "SMPSDBA"."XPSOBJECT"                       347.9 KB    3855 rows
….
Master table "YOUSSEF"."SYS_EXPORT_TABLESPACE_01" successfully loaded/unloaded
******************************************************************************
Dump file set for YOUSSEF.SYS_EXPORT_TABLESPACE_01 is:
  E:\ORACLE_EXPORTS\EXPORT_FILE.DMP
Job "USER"."SYS_EXPORT_TABLESPACE_01" successfully completed at 13:28:54
ログ ファイルを確認します。エクスポートが正常に完了したら、DMP ファイルをソース ディレクトリからターゲット ディレクトリに移動します。
ターゲット データベース
ターゲット サーバ(ソースとは異なる)上で、以下の手順を適用してデータを移動します。
  1. Oracle インポート手順を開始して、DMP ファイルを Oracle データベースにロードします。Windows サーバの場合は CMD、Linux/UNIX システムの場合はターミナル ウィンドウを使用して、以下のコマンドを実行します。
    impdp 
    user
    /
    password
    @
    dbinstance
     tablespaces=
    tablespace_name
     directory=
    directory_name
     dumpfile=
    dump_file_name
    .dmp logfile=
    log_file
    .log.
  2. インポートが完了したら、ログ ファイルで Oracle エラーを確認します。XPSObject_Insert トリガの作成中は、シーケンスの欠如により Oracle エラーが発生します。
  3. シーケンスは Oracle テーブルスペースと共にエクスポートされないため、ターゲット データベースでシーケンスを作成します。以下のコマンドを使用して、シーケンスを作成します。
    DECLARE
     VAL NUMBER;
     NFOUND NUMBER;
    BEGIN
     SELECT COUNT (1) INTO NFOUND
       FROM DBA_SEQUENCES S
      WHERE S.SEQUENCE_NAME = 'OBNUMBERSEQ'
        AND S.SEQUENCE_OWNER = 'SMPSDBA';
     IF NFOUND > 0 THEN
       EXECUTE IMMEDIATE 'DROP SEQUENCE SMPSDBA.OBNUMBERSEQ';
     END IF;
     
     SELECT NVL(MAX(OBNUMBER),1) INTO VAL FROM SMPSDBA.XPSObject;
     
     EXECUTE IMMEDIATE 'CREATE 
    SEQUENCE  SCHEMA
    _OWNER.OBNUMBERSEQ  MINVALUE 1 MAXVALUE 999999999999999999999999999
                        INCREMENT BY 1 START WITH '||VAL||' CACHE 20 NOORDER  NOCYCLE';
     EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM OBNUMBERSEQ for 
    SCHEMA_SCHEMA
    .OBNUMBERSEQ';
    END;
    /
  4. シーケンスを作成した後は、トリガ
    trigger_schema.
    XPSObject_Insert を再コンパイルします。
    最後の手順として、インポートによって無効になったオブジェクトがないかどうかを確認し、それらを再コンパイルすることをお勧めします。