Oracle ポリシー ストアのレプリケート
並列移行モデルおよび Oracle エクスポート機能を使用して、ポリシー ストアの移行を設定し、ポリシー ストアに継承します。このレプリケーションは、r12.x ポリシー ストアから並列の r12.x ポリシー ストアへの移行を容易にします。レプリケーションによって、スキーマとデータ ディクショナリが設定され、ユーザ定義データが新しいポリシー ストアに移行されます。
sm1252sp1jjp
並列移行モデルおよび Oracle エクスポート機能を使用して、ポリシー ストアの移行を設定し、ポリシー ストアに継承します。このレプリケーションは、r12.x ポリシー ストアから並列の r12.x ポリシー ストアへの移行を容易にします。レプリケーションによって、スキーマとデータ ディクショナリが設定され、ユーザ定義データが新しいポリシー ストアに移行されます。
このセクションでは、以下の用語が使用されます。
- ソース:データの移行元の r12.x ポリシー サーバおよびポリシー ストア。
- ターゲット:データの移行先の r12.x ポリシー サーバおよびポリシー ストア。
警告:
ターゲット ポリシー サーバは、同じポリシー サーバ暗号化キーを使用して設定します。このキーは、ポリシー ストア内の機密データを復号化するために使用されます。暗号化キーで暗号化されたデータは、同じキーを使用しない限り、ターゲット ポリシー ストアで復号化することはできません。キーが異なる場合は、すべての機密データを再入力する必要があります。機密データには、ユーザ ストア管理者パスワード、トラステッド ホストの共有秘密キー(エージェントを再登録する必要があります)、4.x エージェント パスワード、すべての Single Sign-On
管理者のパスワードなどが含まれます。注:
データは、r12.0 SP3 cr11 ソース ポリシー ストアから、r12.x ポリシー サーバによって使用されるよう設定されている並列 Oracle DB に移行されました。Oracle の準備
このプロセスを開始する前に、以下の要件に注意してください。
- ソースおよびターゲット インスタンスがすでに作成されている。
- ターゲット インスタンスに、ソース データベースと同じ名前で作成されたテーブルスペースがある。
- すべてのポリシー ストア オブジェクト(テーブル、インデックス、シーケンス)用の同じスキーマ所有者がすでにターゲット データベース上で作成されています。スキーマ所有者には、ソース データベースと同じ権限が必要です。
注:
このトピックでは、Oracle 11g
で 1 つのデータベースから別のデータベースにテーブルスペースを移動する場合の手順を示します。Oracle ソース インスタンスの準備
- エクスポートを実行するユーザに、このタスクを完了するのに十分な権限があることを確認します。エクスポートを適用するために以下の権限を付与できます。GRANT EXPORT FULL DATABASE TO USER;
- データベース サーバ上にディレクトリを作成します。これは、Oracle エクスポートによって、エクスポートのログ ファイルと共にエクスポートされた DMP ファイルを保存するために使用されます。
- エクスポートを実行するユーザに、そのディレクトリに対する書き込み権限があることを確認します。
- 物理的な場所をポイントする 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;
- このスキーマ用のパブリック シノニムをデータベース上で再作成します。この手順は、以下のスクリプトによって実行できます。DECLAREBEGINFOR I IN (SELECT T.OWNER,T.TABLE_NAMEFROM DBA_TABLES TWHERE T.OWNER = 'schema') LOOPEXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM '||I.TABLE_NAME||' FOR'||I.OWNER||'.'||I.TABLE_NAME;END LOOP;END;/
Oracle ターゲット インスタンスの準備
- エクスポートを実行するユーザに、このタスクを完了する権限があることを確認します。エクスポートを適用するために以下の権限を付与できます。GRANT IMPORT FULL DATABASE TO USER;
- データベース サーバ上にディレクトリを作成します。これは、Oracle によって、DMP ファイルをデータベースにインポートする際にファイルを読み取るために使用されます。ソースおよびターゲットのデータベースが同じボックスにある場合は、この部分をスキップできます。
- インポートを実行するユーザに、そのディレクトリに対する読み取り権限があることを確認します。
- 物理的な場所をポイントする 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_namedumpfile=file_name.dmp logfile=logfile_name.log
完了したら、生成されたログ ファイルを確認します。ログ ファイルは、DMP ファイルと共にサーバ上で作成されたディレクトリ内にあります。エクスポートが正常に行われ、Oracle エラーのないことを確認します。
ログ ファイルの例を以下に示します。
Export: Release 11.1.0.6.0 - Production on Friday, 30 January, 2015 13:28:14Copyright (c) 2003, 2007, Oracle. All rights reserved.;;;Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - ProductionWith the Partitioning, Real Application Clusters, OLAP, Data Miningand Real Application Testing optionsStarting "YOUSSEF"."SYS_EXPORT_TABLESPACE_01": user/********@dbinstance tablespaces=tablespace_name directory=directory_name dumpfile=file_name.dmp logfile=fiel_name.logEstimate in progress using BLOCKS method...Processing object type TABLE_EXPORT/TABLE/TABLE_DATATotal estimation using BLOCKS method: 4.937 MBProcessing object type TABLE_EXPORT/TABLE/TABLEProcessing object type TABLE_EXPORT/TABLE/INDEX/INDEXProcessing object type TABLE_EXPORT/TABLE/CONSTRAINT/CONSTRAINTProcessing object type TABLE_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICSProcessing object type TABLE_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINTProcessing object type TABLE_EXPORT/TABLE/TRIGGERProcessing 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.DMPJob "USER"."SYS_EXPORT_TABLESPACE_01" successfully completed at 13:28:54
ログ ファイルを確認します。エクスポートが正常に完了したら、DMP ファイルをソース ディレクトリからターゲット ディレクトリに移動します。
ターゲット データベース
ターゲット サーバ(ソースとは異なる)上で、以下の手順を適用してデータを移動します。
- Oracle インポート手順を開始して、DMP ファイルを Oracle データベースにロードします。Windows サーバの場合は CMD、Linux/UNIX システムの場合はターミナル ウィンドウを使用して、以下のコマンドを実行します。impdpuser/password@dbinstancetablespaces=tablespace_namedirectory=directory_namedumpfile=dump_file_name.dmp logfile=log_file.log.
- インポートが完了したら、ログ ファイルで Oracle エラーを確認します。XPSObject_Insert トリガの作成中は、シーケンスの欠如により Oracle エラーが発生します。
- シーケンスは Oracle テーブルスペースと共にエクスポートされないため、ターゲット データベースでシーケンスを作成します。以下のコマンドを使用して、シーケンスを作成します。DECLAREVAL NUMBER;NFOUND NUMBER;BEGINSELECT COUNT (1) INTO NFOUNDFROM DBA_SEQUENCES SWHERE S.SEQUENCE_NAME = 'OBNUMBERSEQ'AND S.SEQUENCE_OWNER = 'SMPSDBA';IF NFOUND > 0 THENEXECUTE IMMEDIATE 'DROP SEQUENCE SMPSDBA.OBNUMBERSEQ';END IF;SELECT NVL(MAX(OBNUMBER),1) INTO VAL FROM SMPSDBA.XPSObject;EXECUTE IMMEDIATE 'CREATESEQUENCE SCHEMA_OWNER.OBNUMBERSEQ MINVALUE 1 MAXVALUE 999999999999999999999999999INCREMENT BY 1 START WITH '||VAL||' CACHE 20 NOORDER NOCYCLE';EXECUTE IMMEDIATE 'CREATE OR REPLACE PUBLIC SYNONYM OBNUMBERSEQ forSCHEMA_SCHEMA.OBNUMBERSEQ';END;/
- 最後の手順として、インポートによって無効になったオブジェクトがないかどうかを確認し、それらを再コンパイルすることをお勧めします。シーケンスを作成した後は、トリガtrigger_schema.XPSObject_Insert を再コンパイルします。