89 DBMS_FLASHBACK_ARCHIVE_MIGRATE
DBMS_FLASHBACK_ARCHIVE_MIGRATEパッケージを使用すると、トランスポータブル表領域を使用して、フラッシュバック・アーカイブの元表を履歴とともに別のデータベースにエクスポートおよびインポートできます。
制限事項
この移行パッケージは、非CDB環境でのみ使用できます。
この章のトピックは、次のとおりです:
- DBMS_FLASHBACK_ARCHIVE_MIGRATEの概要
- DBMS_FLASHBACK_ARCHIVE_MIGRATEのセキュリティ・モデル
- DBMS_FLASHBACK_ARCHIVE_MIGRATEの操作上のノート
- DBMS_FLASHBACK_ARCHIVE_MIGRATEの例
- DBMS_FLASHBACKサブプログラムの要約
参照:
DBMS_FLASHBACK_ARCHIVE_MIGRATEの詳細は、次のマニュアルを参照してください。
89.1 DBMS_FLASHBACK_ARCHIVE_MIGRATEの概要
このパッケージを使用すると、トランスポータブル表領域を使用して、フラッシュバック・アーカイブの元表をその履歴とともに別のデータベースにエクスポートおよびインポートできます。
89.2 DBMS_FLASHBACK_ARCHIVE_MIGRATEのセキュリティ・モデル
DBMS_FLASHBACK_ARCHIVE_MIGRATEパッケージは、ソース・データベースとターゲット・データベースの両方でSYSとしてコンパイルする必要があります。 ソース・ファイルは、?/rdbms/admin/crefbamig.sqlにあり、パッケージの作成またはコンパイルに使用できます。
SYSとして実行する必要があります。 パッケージではDBMS_DATAPUMP、DBMS_LOCK、DBMS_SYSTEM、DBMS_SQL、DBMS_SCHEDULERの各PL/SQLパッケージが使用されるため、それらのセキュリティ・モデルも適用できます。 エクスポート機能では、エクスポート対象のユーザーのFDA表とともに、次のSYS表のデータもエクスポートされます。
- SMON_SCN_TIME
- SYS_FBA_FA
- SYS_FBA_TSFA
- SYS_FBA_TRACKEDTABLES
- SYS_FBA_PARTITIONS
- SYS_FBA_USERS
89.3 DBMS_FLASHBACK_ARCHIVE_MIGRATEの操作上のノート
この項では、DBMS_FLASHBACK_ARCHIVE_MIGRATEパッケージの使用方法について説明します。
前提条件
データベースのバージョン >= 11.2
データベース・バージョンが11.2の場合は、次の条件を満たす必要があります。
shared_pool_size>= 500Mstreams_pool_size>= 40M
または
sga_target>= 2G
定数
なし
- ソース・データベースで
flashback_archive.exportを実行して、指定したフラッシュバック・アーカイブが有効な表とその履歴表、さらにトランスポータブル表領域を使用しているその他の関連メタデータ情報をエクスポートします。 - トランスポータブル表領域エクスポート・ダンプおよび関連するデータ・ファイルをソース・データベースからターゲット・データベースにコピーします。
- ターゲット・データベースで
flashback_archive.importを実行して、エクスポートしたフラッシュバック・アーカイブが有効な表とその履歴のインポートを完了します。
無関係なオブジェクト
フラッシュバック・アーカイブが有効な表およびフラッシュバック・アーカイブ自体をホストする表領域には、完全に関連性のないオブジェクトがある可能性があります。 エクスポート時には、トランスポータブル表領域機能が使用されるため、これらのオブジェクトもすべてエクスポートされます。 このような無関係なオブジェクトを表SYS_FBA_EXTRANEOUSOBJSに示します。
インポートに成功したとき、無関係なオブジェクトはそのまま残ります。 DBAは、無関係なオブジェクトを削除する必要があります。
表領域の自己完結
トランスポータブル表領域機能がエクスポートおよびインポートに使用されるため、その表領域内のすべてのオブジェクトが自己完結型である必要があります。 そうでないと、ファンクションは異常終了します。
履歴粒度の低下
インポート後に、履歴の粒度が低下することがあります。
たとえば、ソース・データベースにわずかな時間で生成された複数の履歴を1つの履歴に結合できます。
ログ
エクスポート・ログおよびインポート・ログは、data_pump_dir入力引数として指定されたOSディレクトリにあります。
エクスポート・ログの形式はfda_mig_expdp_YYYY_MMDD_HH24MI.logです
インポート・ログの形式はfda_mig_impdp_YYYY_MMDD_HH24MI.logです
操作上のノート
- エクスポート後、関連する表領域はDBAが関連するデータ・ファイルをコピーできるように
READONLYモードのままになります。 - また、関連する表領域を
READONLYモードのままにすると、エクスポートした表がデータ・ファイルのエクスポートおよびコピー中に不変の状態になります。 - 提供されているプロシージャをエクスポートおよびインポートに使用して表のブロック・サイズを変更することはできません。 これらのプロシージャは内部でトランスポータブル表領域のエクスポートおよびインポート機能を使用するためです。
- インポートが正常に完了すると、表領域は再度
READONLYモードに保持されます。 DBAは、インポートしたデータを検証した後、表領域をREAD-WRITEにすることができます。 - インポートが正常に完了した後、エクスポート操作への入力として指定した小さい表領域を削除できます。
89.4 DBMS_FLASHBACK_ARCHIVE_MIGRATEの例
この項では、フラッシュバック・アーカイブ表のエクスポートとインポートをその履歴とともに説明します。
ステップ1: フラッシュバック・アーカイブ対応表を、その履歴とともにエクスポートします
例では、3つのフラッシュバック・アーカイブ対応表USR1_TAB1、USR1_TAB2およびUSR1_TAB3がエクスポートされています。 これらの表は、FA1_TBSP、FA1_TBSP_1、USR1_TBSPおよびUSR1_TBSP_1表領域に分散されます。
TTS_TBSPは、エクスポートに関連するメタデータを保持する小さい表領域です。
/some/dir/with/enough/disk/spaceは、データ・ポンプ・ファイルおよびログが作成されるOSディレクトリです。
set serveroutput on;
declare
l_fda_tabs dbms_sql.varchar2_table;
begin
l_fda_tabs(1) := upper('usr1_tab1');
l_fda_tabs(2) := upper('usr1_tab2');
l_fda_tabs(3) := upper('usr1_tab3');
flashback_archive_migrate.export
( schema_owner => 'USR1'
, fda_tables => l_fda_tabs
, tts => 'TTS_TBSP'
, data_pump_dir => '/some/dir/with/enough/disk/space'
);
end;
/完了すると、データ・ポンプのダンプ・ファイルと、インポートを完了するためにターゲット・データベースにコピーするデータ・ファイルがエクスポート出力にリストされます。
Step 2: Step 1でリストされたデータ・ポンプのダンプ・ファイルとデータ・ファイルをターゲット・データベースにコピーします。
Step 3: フラッシュバック・アーカイブ表を、その履歴とともにインポートします
例では、3つのフラッシュバック・アーカイブ対応表USR1_TAB1、USR1_TAB2およびUSR1_TAB3が、データ・ファイル全体に分散したFA1_TBSP、FA1_TBSP_1、USR1_TBSP,およびUSR1_TBSP_1表領域からインポートされています。
Step 1)ログ・ファイルに取得されるデータ・ファイルを示します。
/u01/app/oracle/oradata/TGT_DB/tts_tbsp.dbf/u01/app/oracle/oradata/TGT_DB/usr1_tbsp.dbf/u01/app/oracle/oradata/TGT_DB/usr1_tbsp1.dbf/u01/app/oracle/oradata/TGT_DB/FA1_tbsp.dbf/u01/app/oracle/oradata/TGT_DB/FA1_tbsp_1.dbf
TTS_TBSPは、データ・ファイルが/ade/nkedlaya_fda2/rdbms/dbs/tts_tbsp.dbfであるエクスポート関連のメタデータを保持する小さい表領域です。
/some/dir/with/enough/disk/spaceは、データ・ポンプ・ファイルが作成されるOSディレクトリです。
set serveroutput on;
declare
l_data_files dbms_sql.varchar2_table;
begin
l_data_files(1) := '/u01/app/oracle/oradata/TGT_DB/tts_tbsp.dbf';
l_data_files(2) := '/u01/app/oracle/oradata/TGT_DB/usr1_tbsp.dbf';
l_data_files(3) := '/u01/app/oracle/oradata/TGT_DB/usr1_tbsp1.dbf';
l_data_files(4) := '/u01/app/oracle/oradata/TGT_DB/FA1_tbsp.dbf';
l_data_files(5) := '/u01/app/oracle/oradata/TGT_DB/FA1_tbsp_1.dbf';
flashback_archive_migrate.import
( schema_owner => 'USR1'
, tts => 'TTS_TBSP'
, data_pump_dir => '/data/pump/dir/where/export/dump/file/resides'
, tts_data_files => l_data_files
);
end;
/インポートが正常に完了すると、インポートした表でフラッシュバック・アーカイブが有効になり、生成される新しい履歴とともに以前の履歴が使用可能になります。
89.5 DBMS_FLASHBACKサブプログラムの要約
この表は、DBMS_FLASHBACK_ARCHIVE_MIGRATEサブプログラムを示し、簡単に説明しています。
表89-1 DBMS_FLASHBACK_ARCHIVE_MIGRATEパッケージ・サブプログラム
| サブプログラム | 説明 |
|---|---|
|
このプロシージャは、指定したフラッシュバック・アーカイブが有効な元表、その履歴および関連する表領域をエクスポートします。 |
|
|
このプロシージャは、トランスポータブル表領域チェックを使用して、指定されたフラッシュバック・アーカイブが有効な元表、その履歴および自己完結に関連する表領域を分析します。 |
|
|
このプロシージャは、エクスポートされたフラッシュバック・アーカイブが有効な元表、その履歴および関連する表領域をインポートします。 |
89.5.1 EXPORTプロシージャ
このプロシージャは、指定したフラッシュバック・アーカイブが有効な元表、その履歴および関連する表領域をエクスポートします。
構文
DBMS_FLASHBACK_ARCHIVE_MIGRATE.EXPORT ( schema_owner IN VARCHAR2, fda_tables IN DBMS_SQL.VARCHAR2, tts IN VARCHAR2, data_pump_dir IN VARCHAR2, ignore_errors IN BOOLEAN DEFAULT FALSE);
パラメータ
表89-2 EXPORTプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
フラッシュバック・アーカイブが有効な表の所有者 |
|
|
フラッシュバック・アーカイブが有効な表の配列 |
|
|
エクスポート関連のメタデータの保持に使用できる小さい表領域 |
data_pump_dir |
エクスポート・ダンプが配置されるオペレーティング・システム内のディレクトリ・パス |
ignore_errors |
トランスポータブル表領域のエラーは無視してください。 デフォルト値は |
89.5.2 EXPORT_ANALYZEプロシージャ
このプロシージャは、トランスポータブル表領域チェックを使用して、指定されたフラッシュバック・アーカイブが有効な元表、その履歴および自己完結に関連する表領域を分析します。
構文
DBMS_FLASHBACK_ARCHIVE_MIGRATE.EXPORT_ANALYZE ( schema_owner IN VARCHAR2, fda_tables IN DBMS_SQL.VARCHAR2, tts IN VARCHAR2);
パラメータ
表89-3 EXPORT_ANALYZEプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
フラッシュバック・アーカイブが有効な表の所有者 |
|
|
フラッシュバック・アーカイブが有効な表の配列 |
|
|
エクスポート関連のメタデータの保持に使用できる小さい表領域 |
89.5.3 IMPORTプロシージャ
このプロシージャは、エクスポートされたフラッシュバック・アーカイブが有効な元表、その履歴および関連する表領域をインポートします。
構文
DBMS_FLASHBACK_ARCHIVE_MIGRATE.IMPORT ( schema_owner IN VARCHAR2, tts IN VARCHAR2, data_pump_dir IN VARCHAR2, tts_data_files IN DBMS_SQL.VARCHAR2_TABLE);
パラメータ
表89-4 IMPORTプロシージャのパラメータ
| パラメータ | 説明 |
|---|---|
|
|
フラッシュバック・アーカイブが有効な表の所有者 |
|
|
エクスポート関連のメタデータの保持に使用できる小さい表領域 |
data_pump_dir |
エクスポート・ダンプが配置されるオペレーティング・システム内のディレクトリ・パス |
tts_data_files |
TTSでエクスポートされた表領域のデータ・ファイル・リスト。 |