90 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パッケージは、ソース・データベースとターゲット・データベースの両方でSYSとしてコンパイルする必要があります。 ソース・ファイルは、?/rdbms/admin/crefbamig.sqlにあり、パッケージの作成またはコンパイルに使用できます。

エクスポートおよびインポートのプロシージャは、SYSとして実行する必要があります。 パッケージではDBMS_DATAPUMPDBMS_LOCKDBMS_SYSTEMDBMS_SQLDBMS_SCHEDULERの各PL/SQLパッケージが使用されるため、それらのセキュリティ・モデルも適用できます。 エクスポート機能では、エクスポート対象のユーザーのFDA表とともに、次のSYS表のデータもエクスポートされます。
  • SMON_SCN_TIME
  • SYS_FBA_FA
  • SYS_FBA_TSFA
  • SYS_FBA_TRACKEDTABLES
  • SYS_FBA_PARTITIONS
  • SYS_FBA_USERS

DBMS_FLASHBACK_ARCHIVE_MIGRATE操作上のノート

この項では、DBMS_FLASHBACK_ARCHIVE_MIGRATEパッケージの使用方法について説明します。

前提条件

データベースのバージョン >= 11.2

データベース・バージョンが11.2の場合は、次の条件を満たす必要があります。

  • shared_pool_size >= 500M
  • streams_pool_size >= 40M

または

  • sga_target >= 2G

定数

なし

  1. ソース・データベースでflashback_archive.exportを実行して、指定したフラッシュバック・アーカイブが有効な表とその履歴表、さらにトランスポータブル表領域を使用しているその他の関連メタデータ情報をエクスポートします。
  2. トランスポータブル表領域エクスポート・ダンプおよび関連するデータ・ファイルをソース・データベースからターゲット・データベースにコピーします。
  3. ターゲット・データベースで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にすることができます。
  • インポートが正常に完了した後、エクスポート操作への入力として指定した小さい表領域を削除できます。

DBMS_FLASHBACK_ARCHIVE_MIGRATEの例

この項では、フラッシュバック・アーカイブ表のエクスポートとインポートをその履歴とともに説明します。

ステップ1: フラッシュバック・アーカイブ対応表を、その履歴とともにエクスポートします

例では、3つのフラッシュバック・アーカイブ対応表USR1_TAB1USR1_TAB2およびUSR1_TAB3がエクスポートされています。 これらの表は、FA1_TBSPFA1_TBSP_1USR1_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_TAB1USR1_TAB2およびUSR1_TAB3が、データ・ファイル全体に分散したFA1_TBSPFA1_TBSP_1USR1_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;
   /

インポートが正常に完了すると、インポートした表でフラッシュバック・アーカイブが有効になり、生成される新しい履歴とともに以前の履歴が使用可能になります。

DBMS_FLASHBACKサブプログラムの要約

この表は、DBMS_FLASHBACK_ARCHIVE_MIGRATEサブプログラムを示し、簡単に説明しています。

表90-1 DBMS_FLASHBACK_ARCHIVE_MIGRATEパッケージ・サブプログラム

サブプログラム 説明

EXPORTプロシージャ

このプロシージャは、指定したフラッシュバック・アーカイブが有効な元表、その履歴および関連する表領域をエクスポートします。

EXPORT_ANALYZEプロシージャ

このプロシージャは、トランスポータブル表領域チェックを使用して、指定されたフラッシュバック・アーカイブが有効な元表、その履歴および自己完結に関連する表領域を分析します。

IMPORTプロシージャ

このプロシージャは、エクスポートされたフラッシュバック・アーカイブが有効な元表、その履歴および関連する表領域をインポートします。

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);

パラメータ

表90-2 EXPORTプロシージャのパラメータ

パラメータ 説明

schema_owner

フラッシュバック・アーカイブが有効な表の所有者

fda_tables

フラッシュバック・アーカイブが有効な表の配列

tts

エクスポート関連のメタデータの保持に使用できる小さい表領域

data_pump_dir

エクスポート・ダンプが配置されるオペレーティング・システム内のディレクトリ・パス

ignore_errors

トランスポータブル表領域のエラーは無視してください。 デフォルト値はFALSEです。

EXPORT_ANALYZEプロシージャ

このプロシージャは、トランスポータブル表領域チェックを使用して、指定されたフラッシュバック・アーカイブが有効な元表、その履歴および自己完結に関連する表領域を分析します。

構文

DBMS_FLASHBACK_ARCHIVE_MIGRATE.EXPORT_ANALYZE (
   schema_owner        IN   VARCHAR2, 
   fda_tables          IN   DBMS_SQL.VARCHAR2, 
   tts                 IN   VARCHAR2);

パラメータ

表90-3 EXPORT_ANALYZEプロシージャのパラメータ

パラメータ 説明

schema_owner

フラッシュバック・アーカイブが有効な表の所有者

fda_tables

フラッシュバック・アーカイブが有効な表の配列

tts

エクスポート関連のメタデータの保持に使用できる小さい表領域

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);

パラメータ

表90-4 IMPORTプロシージャのパラメータ

パラメータ 説明

schema_owner

フラッシュバック・アーカイブが有効な表の所有者

tts

エクスポート関連のメタデータの保持に使用できる小さい表領域

data_pump_dir

エクスポート・ダンプが配置されるオペレーティング・システム内のディレクトリ・パス

tts_data_files

TTSでエクスポートされた表領域のデータ・ファイル・リスト。