167 DBMS_STREAMS_TABLESPACE_ADM

DBMS_STREAMS_TABLESPACE_ADMパッケージは、Oracle Streamsパッケージ・セットの1つであり、データベース間で表領域をコピーおよび移動する管理インタフェースを提供しています。

このパッケージは、トランスポータブル表領域、データ・ポンプ、DBMS_FILE_TRANSFERパッケージおよびDBMS_FILE_GROUPパッケージを使用します。

この章のトピックは、次のとおりです:

参照:

このパッケージおよびOracle Streamsの詳細は、『Oracle Streams概要および管理』および『Oracle Streamsレプリケーション管理者ガイド』を参照してください。

167.1 DBMS_STREAMS_TABLESPACE_ADMの概要

このパッケージの各プロシージャでは、単純な表領域または自己完結型表領域セットを指定する必要があります。

自己完結型の表領域には、表領域の外部をポイントする表領域からの参照がありません。たとえば、表領域の索引が異なる表領域の表に対する索引である場合、その表領域は自己完結型ではありません。単純な表領域は、1つのデータファイルのみを使用する自己完結型表領域です。

次のプロシージャでは、単純な表領域を指定する必要があります。

自己完結型表領域セットには、表領域セットの外部をポイントする表領域セット内部からの参照がありません。たとえば、表領域セットにパーティション表が部分的に含まれている場合、その表領域セットは自己完結型ではありません。

次のプロシージャでは、自己完結型表領域セットを指定する必要があります。

表領域セットが自己完結型かどうかを判別するには、Oracleが提供するDBMS_TTSパッケージのTRANSPORT_SET_CHECKプロシージャを使用します。

参照:

自己完結型の表領域および表領域セットの詳細は、『Oracle Database管理者ガイド』を参照してください。

167.2 DBMS_STREAMS_TABLESPACE_ADMのセキュリティ・モデル

このパッケージのセキュリティは、選択したユーザーまたはロールにこのパッケージのEXECUTE権限を付与するか、選択したユーザーまたはロールにEXECUTE_CATALOG_ROLEを付与することで制御できます。

パッケージのサブプログラムをストアド・プロシージャ内から実行する場合、そのサブプログラムを実行するユーザーには、パッケージのEXECUTE権限を直接付与する必要があります。ロールを通して付与することはできません。

167.3 DBMS_STREAMS_TABLESPACE_ADMのデータ構造

DBMS_STREAMS_TABLESPACE_ADMパッケージは、RECORDタイプおよびTABLEタイプを定義します。

DIRECTORY_OBJECT_SET表タイプ

1つ以上のディレクトリ・オブジェクトの名前を格納します。名前はそれぞれSQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトである必要があります。

構文
TYPE DIRECTORY_OBJECT_SET IS TABLE OF VARCHAR2(32) 
  INDEX BY BINARY_INTEGER;

FILEレコード・タイプ

ディレクトリに関連付けられたディレクトリ・オブジェクトおよびディレクトリのファイル名を格納します。

構文
TYPE FILE_SET IS TABLE OF FILE 
   INDEX BY BINARY_INTEGER;
フィールド

表167-1 FILEのフィールド

フィールド 説明

directory_object

ディレクトリ・オブジェクトの名前。SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトの名前を指定する必要があります。

file_name

ディレクトリ・オブジェクトに関連付けられた対応するディレクトリのファイルの名前。

FILE_SET表タイプ

1つ以上のファイルを格納します。

構文
TYPE FILE_SET IS TABLE OF FILE 
   INDEX BY BINARY_INTEGER;

TABLESPACE_SET表タイプ

1つ以上の表領域の名前を格納します。

構文
TYPE TABLESPACE_SET IS TABLE OF VARCHAR2(32) 
   INDEX BY BINARY_INTEGER;

167.3.1 DIRECTORY_OBJECT_SET表タイプ

1つ以上のディレクトリ・オブジェクトの名前を格納します。名前はそれぞれSQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトである必要があります。

167.3.2 FILEレコード・タイプ

このレコード・タイプには、ディレクトリに関連付けられたディレクトリ・オブジェクトおよびディレクトリのファイル名を格納します。

167.3.3 FILE_SET表タイプ

この表タイプには、1つ以上のファイルが含まれます。

167.3.4 TABLESPACE_SET表タイプ

このタイプには、1つ以上の表領域の名前を格納します。

167.4 DBMS_STREAMS_TABLESPACE_ADMサブプログラムの要約

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

表167-2 DBMS_STREAMS_TABLESPACE_ADMパッケージのサブプログラム

サブプログラム 説明

ATTACH_SIMPLE_TABLESPACEプロシージャ

データ・ポンプを使用して、以前にDBMS_STREAMS_TABLESPACE_ADMパッケージまたはデータ・ポンプ・エクスポートを使用してエクスポートされた単純な表領域をインポートします。

ATTACH_TABLESPACESプロシージャ

データ・ポンプを使用して、以前にDBMS_STREAMS_TABLESPACE_ADMパッケージ、データ・ポンプ・エクスポート、またはRecovery Manager (RMAN)のTRANSPORT TABLESPACEコマンドを使用してエクスポートした自己完結型表領域セットをインポートします。

CLONE_SIMPLE_TABLESPACEプロシージャ

単純な表領域をクローニングします。後でこの表領域をデータベースに連結できます。

CLONE_TABLESPACESプロシージャ

自己完結型表領域セットをクローニングします。後でこの表領域をデータベースに連結できます。

DETACH_SIMPLE_TABLESPACEプロシージャ

単純な表領域の連結を解除します。後でこの表領域をデータベースに連結できます。

DETACH_TABLESPACESプロシージャ

自己完結型表領域セットの連結を解除します。後でこの表領域をデータベースに連結できます。

PULL_SIMPLE_TABLESPACEプロシージャ

リモート・データベースから単純な表領域をコピーし、現在のデータベースに連結します。

PULL_TABLESPACESプロシージャ

リモート・データベースから自己完結型表領域のセットをコピーし、現在のデータベースに連結します。

注意:

特に指定がないかぎり、すべてのサブプログラムがコミットされます。

167.4.1 ATTACH_SIMPLE_TABLESPACEプロシージャ

このプロシージャは、データ・ポンプを使用して、以前にDBMS_STREAMS_TABLESPACE_ADMパッケージ、データ・ポンプ・エクスポート、またはRecovery Manager (RMAN)のTRANSPORT TABLESPACEコマンドを使用してエクスポートした単純な表領域をインポートします。

構文

DBMS_STREAMS_TABLESPACE_ADM.ATTACH_SIMPLE_TABLESPACE(
   directory_object      IN  VARCHAR2,
   tablespace_file_name  IN  VARCHAR2,
   converted_file_name   IN  VARCHAR2  DEFAULT NULL,
   datafile_platform     IN  VARCHAR2  DEFAULT NULL,
   tablespace_name       OUT VARCHAR2);

パラメータ

表167-3 ATTACH_SIMPLE_TABLESPACEプロシージャのパラメータ

パラメータ 説明

directory_object

データ・ポンプ・ダンプ・ファイルおよび表領域のデータファイルを格納するディレクトリ。SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトの名前を指定する必要があります。

データ・ポンプ・エクスポート・ダンプ・ファイルの名前は、.dmp拡張子が付くことを除き、表領域のデータファイル名と同じにする必要があります。converted_file_nameNULL以外の場合、変換後のファイル名ではなく、エクスポート・データベースによって生成されたダンプ・ファイルを指定します。

データ・ポンプ・インポート・ログ・ファイルはこのディレクトリに書き込まれます。ログ・ファイルの名前は、.alg拡張子が付くことを除いて、表領域のデータファイル名と同じです。ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

NULLの場合は、エラーが発生します。

tablespace_file_name

表領域をインポートするデータファイルの名前。

NULLの場合は、エラーが発生します。

converted_file_name

datafile_platformパラメータがNULL以外で、ローカル・インポート・データベースのプラットフォームと異なる場合、変換するデータファイルのファイル名を指定します。データファイルは、ローカル・インポート・データベースのプラットフォームに変換され、新しいファイル名にコピーされます。既存のデータファイルは変更も削除もされません。

datafile_platformパラメータがNULLの場合にNULL以外に設定すると、このパラメータは無視されます。

datafile_platformパラメータでローカル・インポート・データベースと同じプラットフォームを指定している場合にNULL以外に設定すると、このパラメータは無視されます。

このパラメータがNULLで、datafile_platformパラメータがNULL以外の場合は、エラーが発生します。

datafile_platform

プラットフォームがエクスポート・データベースおよび現在のインポート・データベースと同じ場合、NULLを指定します。

プラットフォームがエクスポート・データベースおよび現在のインポート・データベースと異なる場合、エクスポート・データベースのプラットフォームを指定します。

データベースのプラットフォームを判別するには、V$DATABASE動的パフォーマンス・ビューのPLATFORM_NAME列を問い合せます。V$TRANSPORTABLE_PLATFORM動的パフォーマンス・ビューに、クロス・プラットフォームのトランスポータブル表領域をサポートするすべてのプラットフォームのリストが表示されます。

tablespace_name

連結する表領域の名前を格納します。連結する表領域は読取り専用です。必要に応じて、ALTER TABLESPACE文を使用して、表領域を読取り/書込みにできます。

使用上の注意

このプロシージャを実行するには、ユーザーが次の要件を満たしている必要があります。

  • IMP_FULL_DATABASEロールを持っている。

  • directory_objectパラメータに指定された、データ・ポンプ・エクスポート・ダンプ・ファイルおよびセット内の表領域のデータファイルを格納するディレクトリ・オブジェクトに対するREADおよびWRITE権限を持っている。

自動ストレージ管理(ASM)ディレクトリは、このプロシージャでは使用できません。

参照:

概要

167.4.2 ATTACH_TABLESPACESプロシージャ

このプロシージャは、データ・ポンプを使用して、以前にDBMS_STREAMS_TABLESPACE_ADMパッケージ、データ・ポンプ・エクスポート、またはRecovery Manager (RMAN)のTRANSPORT TABLESPACEコマンドを使用してエクスポートした自己完結型表領域セットをインポートします。

このプロシージャはオーバーロードされていて、次のバージョンで構成されています。

  • このプロシージャの一方のバージョンは、datapump_job_nameパラメータ内でデータ・ポンプ・ジョブ名を使用します。このジョブは、連結操作を完了するためのデータ・ポンプ・インポートを実行します。さらに、このプロシージャはオプションで、エクスポート・データベースのプラットフォームがローカル・データベース・プラットフォームと異なる場合に、ローカル・プラットフォームで使用できる表領域セットのデータファイルを作成できます。

  • このプロシージャの他方のバージョンは、表領域リポジトリ内の複数バージョンの表領域セットで構成可能なファイル・グループを使用します。表領域リポジトリは、ファイル・グループ・リポジトリ内の表領域セットのコレクションです。このバージョンのプロシージャを実行すると、データ・ポンプ・インポートが実行されます。このバージョンのプロシージャは、ファイル・グループ・バージョン内のファイルを使用して、エクスポート・ダンプ・ファイル、エクスポート・ログ・ファイル、および表領域セットで構成されるデータファイルを指定のディレクトリにコピーできます。ファイル・グループおよびバージョンは、それぞれfile_group_nameパラメータおよびversion_nameパラメータを使用して指定します。このバージョンのプロシージャでは、エクスポート・データベースのプラットフォームがローカル・データベース・プラットフォームと異なる場合、データファイル・プラットフォームを指定する必要はありません。かわりに、表領域セットは、連結時に正しいプラットフォームに自動的に移行します。

構文

DBMS_STREAMS_TABLESPACE_ADM.ATTACH_TABLESPACES(
   datapump_job_name          IN OUT VARCHAR2,
   dump_file                  IN     FILE,
   tablespace_files           IN     FILE_SET,
   converted_files            IN     FILE_SET,
   datafiles_platform         IN     VARCHAR2  DEFAULT NULL,
   log_file                   IN     FILE      DEFAULT NULL,
   tablespace_names           OUT    TABLESPACE_SET);

DBMS_STREAMS_TABLESPACE_ADM.ATTACH_TABLESPACES(
   file_group_name            IN   VARCHAR2,
   version_name               IN   VARCHAR2  DEFAULT NULL,
   datafiles_directory_object IN   VARCHAR2  DEFAULT NULL,
   logfile_directory_object   IN   VARCHAR2  DEFAULT NULL,
   repository_db_link         IN   VARCHAR2  DEFAULT NULL,
   tablespace_names           OUT  TABLESPACE_SET);

パラメータ

表167-4 ATTACH_TABLESPACESプロシージャのパラメータ

パラメータ 説明

data_pump_job_name

データ・ポンプ・ジョブ名。命名規則に従う場合やジョブの追跡を簡単にする場合には、データ・ポンプ・ジョブ名を指定します。

NULLの場合、システムによってデータ・ポンプ・ジョブ名が生成されます。

dump_file

インポートするデータ・ポンプ・ダンプ・ファイルのファイル名。

設定がNULL、またはファイル属性がNULLの場合、エラーが発生します。

tablespace_files

インポートする表領域セットのデータファイルを格納するファイル・セット。

NULLの場合は、エラーが発生します。

converted_files

datafiles_platformパラメータがNULL以外で、ローカル・インポート・データベースのプラットフォームと異なる場合、変換するデータファイルの名前を持つファイル・セットを指定します。データファイルは、ローカル・インポート・データベースのプラットフォームに変換され、新しいファイル名にコピーされます。この場合、指定したファイル・セットのファイル数が、tablespace_filesパラメータに指定したファイル・セットのファイル数と一致している必要があります。既存のデータファイルは変更も削除もされません。

datafiles_platformパラメータがNULLの場合にNULL以外に設定すると、このパラメータは無視されます。

datafiles_platformパラメータでローカル・インポート・データベースと同じプラットフォームを指定している場合にNULL以外に設定すると、このパラメータは無視されます。

このパラメータがNULLで、datafiles_platformパラメータがNULL以外の場合は、エラーが発生します。

datafiles_platform

プラットフォームがエクスポート・データベースおよび現在のインポート・データベースと同じ場合、NULLを指定します。

プラットフォームがエクスポート・データベースおよび現在のインポート・データベースと異なる場合、エクスポート・データベースのプラットフォームを指定します。

データベースのプラットフォームを判別するには、V$DATABASE動的パフォーマンス・ビューのPLATFORM_NAME列を問い合せます。V$TRANSPORTABLE_PLATFORM動的パフォーマンス・ビューに、クロス・プラットフォームのトランスポータブル表領域をサポートするすべてのプラットフォームのリストが表示されます。

log_file

データ・ポンプ・インポート用のログ・ファイル名を指定します。

設定がNULL、または1つ以上のファイル・パラメータがNULLの場合、システムは拡張子.algでログ・ファイル名を作成し、それをデータ・ポンプ・エクスポート・ダンプ・ファイル・ディレクトリに配置します。

ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

file_group_name

[schema_name.]file_group_nameの形式で指定したファイル・グループの名前。たとえば、スキーマがhq_dbaで、ファイル・グループ名がsalesの場合は、hq_dba.salesと指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

version_name

連結するファイル・グループ・バージョンの名前。

NULLに設定すると、このプロシージャはファイル・グループの最新バージョンを使用します。

datafiles_directory_object

データファイルおよびデータ・ポンプ・エクスポート・ダンプ・ファイルのコピー先のディレクトリ・オブジェクト。ファイルは、表領域リポジトリ・ディレクトリからこのディレクトリにコピーされます。

NULL以外に設定すると、連結された表領域は、指定したディレクトリ内のファイルを使用します。ただし、version_nameパラメータで指定したファイル・グループ・バージョンは、このdatafiles_directory_objectパラメータで指定したディレクトリ内ではなく、元のディレクトリ内のファイルで構成されます。

NULLに設定すると、データファイルおよびダンプ・ファイルはコピーされません。

logfile_directory_object

データ・ポンプ・インポート・ログ・ファイルを配置するディレクトリ・オブジェクト。システムによって、拡張子.algを持つログ・ファイル名が作成されます。

NULLに設定すると、インポート・ログ・ファイルがダンプ・ファイルと同じディレクトリに配置されます。

repository_db_link

ファイル・グループが異なるデータベースにある場合は、そのファイル・グループが含まれているデータベースへのデータベース・リンクの名前を指定します。データベース・リンクは、このプロシージャを実行するユーザーがアクセスできる必要があります。

このパラメータをNULL以外に設定する場合は、次の要件を満たしている必要があります。

  • 連結されているバージョン内にファイルが含まれている各ディレクトリ・オブジェクトが、両方のデータベースに存在している必要があります。

  • 対応するディレクトリ・オブジェクトの名前が、両方のデータベースで同じである必要があります。

NULLに設定すると、データベース・リンクは使用されず、ローカル・データベース内のファイル・グループが使用されます。

tablespace_names

連結する表領域の名前を格納します。連結する表領域は読取り専用です。必要に応じて、ALTER TABLESPACE文を使用して、表領域を読取り/書込みにできます。

使用上の注意

次の各項では、このプロシージャの使用上の注意について説明します。

ユーザー要件

このプロシージャのいずれかのバージョンを実行するには、ユーザーが次の要件を満たしている必要があります。

  • IMP_FULL_DATABASEロールを持っている。

  • dump_fileパラメータおよびtablespace_filesパラメータ、またはdatafiles_directory_objectパラメータに指定された、データ・ポンプ・エクスポート・ダンプ・ファイルおよびセット内の表領域のデータファイルを格納するディレクトリ・オブジェクトに対するREADおよびWRITE権限を持っている。

  • log_fileパラメータまたはlogfile_directory_objectパラメータがNULL以外の場合に、そのパラメータに指定された、データ・ポンプ・インポート・ログ・ファイルを保持するディレクトリ・オブジェクトに対するWRITE権限を持っている。

このプロシージャのデータ・ポンプ・ジョブ・バージョンを実行するユーザーは、プラットフォームの変換が必要な場合に、セット内の表領域の変換済データファイルを保持するディレクトリ・オブジェクトに対してWRITE権限を持っている必要があります。これらのディレクトリ・オブジェクトは、converted_filesパラメータがNULL以外の場合に、このパラメータに指定します。

このプロシージャのファイル・グループ・バージョンを実行する場合、ユーザーはファイル・グループの管理に必要な権限を持っている必要があります。

表領域セットのクローニングまたは連結解除に使用するプロシージャ

表領域セットが、CLONE_TABLESPACESプロシージャまたはDETACH_TABLESPACESプロシージャによってそれぞれクローニングまたは連結解除された後に、ATTACH_TABLESPACESプロシージャを使用して表領域セットをデータベースに連結できます。CLONE_TABLESPACESプロシージャまたはDETACH_TABLESPACESプロシージャのデータ・ポンプ・ジョブ・バージョンを使用した場合は、ATTACH_TABLESPACESプロシージャのデータ・ポンプ・ジョブ・バージョンを使用します。CLONE_TABLESPACESプロシージャまたはDETACH_TABLESPACESプロシージャのファイル・グループ・バージョンを使用した場合は、ATTACH_TABLESPACESプロシージャのファイル・グループ・バージョンを使用します。

連結するデータベースがクローニングまたは連結解除するデータベースと異なる場合

表領域セットは、その表領域セットがクローニングまたは連結解除されたデータベースと異なるデータベースに連結できます。これらの2つのデータベースでは、ファイル・システムが共有されない場合があります。2つのデータベースでファイル・システムが共有されない場合は、DBMS_FILE_TRANSFERパッケージ、FTPまたはその他の方法で、ダンプ・ファイルおよびデータファイルをリモート・システムに転送する必要があります。使用するATTACH_TABLESPACESプロシージャのバージョンに応じて、次のいずれかの方法で表領域セットを連結できます。

  • このプロシージャのデータ・ポンプ・ジョブ・バージョンを使用する場合は、ファイル・システムで関連するファイルを指定します。データベース内でディレクトリ・オブジェクトの名前が異なる場合があります。

  • このプロシージャのファイル・グループ・バージョンを使用する場合は、repository_db_linkパラメータを使用して、表領域リポジトリが存在するデータベースを指定できます。ファイルのディレクトリ・オブジェクトが存在し、データベース内で一致している必要があります。

参照:

自動ストレージ管理ディレクトリ

自動ストレージ管理(ASM)ディレクトリは、データファイルおよびエクスポート・ダンプ・ファイルを格納するディレクトリ・オブジェクトには指定できますが、ログ・ファイルを格納するディレクトリ・オブジェクトには指定できません。

参照:

ディレクトリ・オブジェクトへのASMディレクトリの指定の詳細は、『Oracle Databaseユーティリティ』を参照してください。

167.4.3 CLONE_SIMPLE_TABLESPACEプロシージャ

このプロシージャは、単純な表領域をクローニングします。指定する表領域はオンラインである必要があります。

具体的には、このプロシージャは次の操作を実行します。

  1. 指定する表領域が読取り専用でない場合、読取り専用にします。

  2. データ・ポンプを使用して、表領域のメタデータをエクスポートし、指定したディレクトリにダンプ・ファイルを配置します。

  3. 指定済ディレクトリに表領域を指定してデータファイルを配置します。

  4. このプロシージャによって表領域を読取り専用にした場合、表領域を読取り/書込みにします。

さらに、このプロシージャはオプションで、ローカル・データベース・プラットフォームと異なるプラットフォームで使用できる表領域のデータファイルを作成できます。

構文

DBMS_STREAMS_TABLESPACE_ADM.CLONE_SIMPLE_TABLESPACE(
   tablespace_name      IN  VARCHAR2,
   directory_object     IN  VARCHAR2,
   destination_platform IN  VARCHAR2  DEFAULT NULL,
   tablespace_file_name OUT VARCHAR2);

パラメータ

表167-5 CLONE_SIMPLE_TABLESPACEプロシージャのパラメータ

パラメータ 説明

tablespace_name

クローニングする表領域。

NULLの場合は、エラーが発生します。

directory_object

データ・ポンプ・エクスポート・ダンプ・ファイル、データ・ポンプ・エクスポート・ログ・ファイルおよび表領域のデータファイルを配置するディレクトリ。SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトの名前を指定する必要があります。

データ・ポンプ・エクスポート・ダンプ・ファイルの名前は、.dmp拡張子が付くことを除き、表領域のデータファイル名と同じです。ディレクトリにダンプ・ファイルと同じ名前のファイルが存在する場合は、エラーが発生します。

ログ・ファイルの名前は、.clg拡張子が付くことを除いて、表領域のデータファイル名と同じです。ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

NULLの場合は、エラーが発生します。

destination_platform

プラットフォームが現在のエクスポート・データベースおよび目的のインポート・データベースと同じ場合、NULLを指定します。

プラットフォームがエクスポート・データベースおよびインポート・データベースと異なる場合、目的のインポート・データベースのプラットフォームを指定します。

データベースのプラットフォームを判別するには、V$DATABASE動的パフォーマンス・ビューのPLATFORM_NAME列を問い合せます。V$TRANSPORTABLE_PLATFORM動的パフォーマンス・ビューに、クロス・プラットフォームのトランスポータブル表領域をサポートするすべてのプラットフォームのリストが表示されます。

tablespace_file_name

クローニングする表領域データファイルの名前を格納します。データファイルは、directory_objectパラメータに指定したディレクトリに配置します。

使用上の注意

このプロシージャを実行するには、ユーザーが次の要件を満たしている必要があります。

  • EXP_FULL_DATABASEロールを持っている。

  • 表領域に関する情報を含む、1つ以上のデータ・ディクショナリ・ビューへのアクセス権限を持っている。これらのビューには、DBA_TABLESPACESおよびUSER_TABLESPACESが含まれます。

  • 表領域を読取り専用にする必要がある場合に、表領域に対するMANAGE TABLESPACEまたはALTER TABLESPACEを持っている。

  • 表領域のデータファイルを格納するディレクトリのディレクトリ・オブジェクトに対するREAD権限を持っている。この表領域の名前はtablespace_nameパラメータに指定します。このディレクトリにディレクトリ・オブジェクトが存在しない場合、このプロシージャを実行する前にディレクトリ・オブジェクトを作成し、必要な権限を付与します。

  • directory_objectパラメータに指定した、データ・ポンプ・エクスポート・ダンプ・ファイルを格納するディレクトリ・オブジェクトに対するREADおよびWRITE権限を持っている。

  • このプロシージャのファイル・グループ・バージョンを実行する場合、ユーザーはファイル・グループの管理に必要な権限を持っている必要があります。

このプロシージャを使用して表領域をクローニングした後に、ATTACH_SIMPLE_TABLESPACEプロシージャを使用して別のデータベースに表領域を追加できます。データベースがリモート・データベースで、ATTACH_SIMPLE_TABLESPACEプロシージャを使用する場合、DBMS_FILE_TRANSFERパッケージ、FTPまたはその他の方法で、ダンプ・ファイルおよびデータファイルをリモート・システムに転送できます。

自動ストレージ管理(ASM)ディレクトリは、このプロシージャでは使用できません。

167.4.4 CLONE_TABLESPACESプロシージャ

このプロシージャは、自己完結型表領域セットをクローニングします。指定した表領域セットのすべての表領域がオンラインである必要があります。

具体的には、このプロシージャは次の操作を実行します。

  1. 指定した表領域セットの読取り/書込み表領域を読取り専用にします。

  2. データ・ポンプを使用して、表領域セットの表領域のメタデータをエクスポートし、指定したディレクトリにダンプ・ファイルを配置します。

  3. 指定した表領域セットを構成するデータファイルを指定したディレクトリに配置します。

  4. このプロシージャによって表領域を読取り専用にした場合、表領域を読取り/書込みにします。

このプロシージャはオーバーロードされていて、次のバージョンで構成されています。

  • このプロシージャの一方のバージョンは、datapump_job_nameパラメータ内でデータ・ポンプ・ジョブ名を使用します。このジョブは、データ・ポンプ・エクスポートを実行します。このバージョンのプロシージャは、エクスポート・ダンプ・ファイル、エクスポート・ログ・ファイル、および表領域セットで構成されるデータファイルを指定のディレクトリに配置することによってクローニング操作を完了しますが、これらのファイルはファイル・グループ・バージョンには追加されません。さらに、このバージョンのプロシージャは、オプションでローカル・データベース・プラットフォームと異なるプラットフォームで使用できる表領域セットのデータファイルを作成できます。

  • このプロシージャの他方のバージョンは、表領域リポジトリ内の複数バージョンの表領域セットで構成可能なファイル・グループを使用します。表領域リポジトリは、ファイル・グループ・リポジトリ内の表領域セットのコレクションです。このバージョンのプロシージャを実行すると、データ・ポンプ・エクスポートが実行され、また、このバージョンのプロシージャは、エクスポート・ダンプ・ファイル、エクスポート・ログ・ファイル、および表領域セットを構成するデータファイルを適切なファイル・グループ・バージョンに配置することによってクローニング操作を完了します。ファイル・グループおよびバージョンは、それぞれfile_group_nameパラメータおよびversion_nameパラメータを使用して指定します。このバージョンのプロシージャでは、接続先プラットフォームが異なる場合は、接続先プラットフォームを指定する必要はありません。かわりに、ATTACH_TABLESPACESプロシージャのファイル・グループ・バージョンを使用して接続先データベースに連結する際に、表領域セットが正しいプラットフォームに自動的に移行します。

構文

DBMS_STREAMS_TABLESPACE_ADM.CLONE_TABLESPACES(
   datapump_job_name            IN OUT VARCHAR2,
   tablespace_names             IN     TABLESPACE_SET,
   dump_file                    IN     FILE,
   tablespace_directory_objects IN     DIRECTORY_OBJECT_SET,
   destination_platform         IN     VARCHAR2  DEFAULT NULL,
   log_file                     IN     FILE      DEFAULT NULL,
   tablespace_files             OUT    FILE_SET);

DBMS_STREAMS_TABLESPACE_ADM.CLONE_TABLESPACES(
   tablespace_names             IN  TABLESPACE_SET,
   tablespace_directory_object  IN  VARCHAR2  DEFAULT NULL,
   log_file_directory_object    IN  VARCHAR2  DEFAULT NULL,
   file_group_name              IN  VARCHAR2,
   version_name                 IN  VARCHAR2  DEFAULT NULL,
   repository_db_link           IN  VARCHAR2  DEFAULT NULL);

パラメータ

表167-6 CLONE_TABLESPACESプロシージャのパラメータ

パラメータ 説明

data_pump_job_name

データ・ポンプ・ジョブ名。命名規則に従う場合やジョブの追跡を簡単にする場合には、データ・ポンプ・ジョブ名を指定します。

NULLの場合、システムによってデータ・ポンプ・ジョブ名が生成されます。

tablespace_names

クローニングする表領域セット。

NULLの場合は、エラーが発生します。

dump_file

エクスポートするデータ・ポンプ・ダンプ・ファイルのファイル名。

設定がNULL、またはファイル属性がNULLの場合、エラーが発生します。

指定したファイルが存在する場合は、エラーが発生します。

tablespace_directory_objects

表領域のデータファイルをコピーするディレクトリ・オブジェクトのセット。セット内に複数のディレクトリ・オブジェクトがある場合、データファイルはセット内の各ディレクトリ・オブジェクトに順番にコピーされます。この場合、ディレクトリ・オブジェクト・セットの最後のディレクトリ・オブジェクトに達すると、セット内の先頭のディレクトリ・オブジェクトから、データファイルのコピーが再開されます。

NULLに設定すると、表領域セットのデータファイルがダンプ・ファイル・ディレクトリにコピーされます。

destination_platform

プラットフォームが現在のエクスポート・データベースおよび目的のインポート・データベースと同じ場合、NULLを指定します。

プラットフォームがエクスポート・データベースおよびインポート・データベースと異なる場合、目的のインポート・データベースのプラットフォームを指定します。

データベースのプラットフォームを判別するには、V$DATABASE動的パフォーマンス・ビューのPLATFORM_NAME列を問い合せます。V$TRANSPORTABLE_PLATFORM動的パフォーマンス・ビューに、クロス・プラットフォームのトランスポータブル表領域をサポートするすべてのプラットフォームのリストが表示されます。

log_file

データ・ポンプ・エクスポート用のログ・ファイル名を指定します。

設定がNULL、または1つ以上のファイル・パラメータがNULLの場合、システムは拡張子.clgでログ・ファイル名を作成し、それをダンプ・ファイル・ディレクトリに配置します。

ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

tablespace_directory_object

データファイルのコピー先、およびデータ・ポンプ・エクスポート・ダンプ・ファイルの配置先のディレクトリ・オブジェクト。システムによって、拡張子.dmpを持つダンプ・ファイル名が作成されます。

NULLに設定すると、このバージョンのデフォルトのディレクトリ・オブジェクトが、データファイルのコピー先、ダンプ・ファイルの配置先になります。このバージョンにデフォルトのディレクトリ・オブジェクトが存在しない場合は、ファイル・グループのデフォルトのディレクトリ・オブジェクトが使用されます。

バージョンおよびファイル・グループのいずれのデフォルトのディレクトリ・オブジェクトも存在しない場合にNULLに設定すると、エラーが発生します。

log_file_directory_object

データ・ポンプ・エクスポート・ログ・ファイルを配置するディレクトリ・オブジェクト。システムによって、拡張子.clgを持つログ・ファイル名が作成されます。

NULLに設定すると、tablespace_directory_objectで指定するディレクトリ・オブジェクトが使用されます。

file_group_name

[schema_name.]file_group_nameの形式で指定したファイル・グループの名前。たとえば、スキーマがhq_dbaで、ファイル・グループ名がsalesの場合は、hq_dba.salesと指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

指定されたファイル・グループが存在しない場合は、プロシージャによって作成されます。

version_name

クローニングする表領域セットを配置するバージョンの名前。バージョン名に、正の整数は指定できません。

指定されたバージョンが存在しない場合は、プロシージャによって作成されます。

指定されたバージョンが存在する場合は、そのバージョンに表領域セットが追加されます。1つのバージョンに存在可能なデータ・ポンプ・エクスポート・ダンプ・ファイルは1つのみです。

NULLに設定すると、新しいバージョンが作成されます。このバージョンは、バージョン番号を使用して管理できます。

repository_db_link

ファイル・グループがリモート・データベースにある場合は、そのファイル・グループが含まれているデータベースへのデータベース・リンクの名前を指定します。データベース・リンクは、このプロシージャを実行するユーザーがアクセスできる必要があります。

このパラメータがNULL以外の場合、tablespace_directory_objectで指定するディレクトリ・オブジェクトは、ローカル・データベースおよびリモート・データベースに存在する必要があります。tablespace_directory_objectNULLの場合は、両方のデータベースにデフォルトのディレクトリ・オブジェクトが存在する必要があります。ディレクトリ・オブジェクトは各データベースで同じ名前を持ち、共有ファイル・システムで同じディレクトリに対応している必要があります。

NULLに設定すると、データベース・リンクは使用されず、ローカル・データベース内のファイル・グループが使用されます。

tablespace_files

クローニングする表領域セットのデータファイルを格納します。これらのデータファイルは、パラメータtablespace_directory_objectsのディレクトリ・オブジェクトによって指定されたディレクトリに配置されます。

使用上の注意

このプロシージャのいずれかのバージョンを実行するには、ユーザーが次の要件を満たしている必要があります。

  • EXP_FULL_DATABASEロールを持っている。

  • 表領域に関する情報を含む、1つ以上のデータ・ディクショナリ・ビューへのアクセス権限を持っている。これらのビューには、DBA_TABLESPACESおよびUSER_TABLESPACESが含まれます。

  • 表領域を読取り専用にする必要がある場合に、表領域に対するMANAGE TABLESPACEまたはALTER TABLESPACEを持っている。

  • 表領域セットのデータファイルを格納するディレクトリのディレクトリ・オブジェクトに対するREAD権限を持っている。これらの表領域の名前はtablespace_namesパラメータに指定します。これらのいずれかのディレクトリにディレクトリ・オブジェクトが存在しない場合、このプロシージャを実行する前にディレクトリ・オブジェクトを作成し、必要な権限を付与します。

  • dump_fileパラメータまたはtablespace_directory_objectパラメータに指定された、データ・ポンプ・エクスポート・ダンプ・ファイルを格納するディレクトリ・オブジェクトに対するREADおよびWRITE権限を持っている。

  • tablespace_directory_objectsパラメータ(NULL以外)またはtablespace_directory_objectパラメータに指定された、セット内に表領域のコピー済データファイルを格納するディレクトリ・オブジェクトに対するWRITE権限を持っている。

  • log_fileパラメータ(NULL以外)またはlog_file_directory_objectパラメータ(NULL以外)に指定された、データ・ポンプ・エクスポート・ログ・ファイルを格納するディレクトリ・オブジェクトに対するWRITE権限を持っている。

このプロシージャのファイル・グループ・バージョンを実行する場合、ユーザーはファイル・グループの管理に必要な権限を持っている必要があります。

自動ストレージ管理(ASM)ディレクトリは、データファイルおよびエクスポート・ダンプ・ファイルを格納するディレクトリ・オブジェクトには指定できますが、ログ・ファイルを格納するディレクトリ・オブジェクトには指定できません。

このプロシージャを使用して表領域セットをクローニングした後に、ATTACH_TABLESPACESプロシージャを使用して別のデータベースに表領域を連結できます。

参照:

167.4.5 DETACH_SIMPLE_TABLESPACEプロシージャ

このプロシージャは、単純な表領域の連結を解除します。指定する表領域はオンラインである必要があります。

具体的には、このプロシージャは次の操作を実行します。

  1. 指定する表領域が読取り専用でない場合、読取り専用にします。

  2. データ・ポンプを使用して、表領域のメタデータをエクスポートし、表領域データファイルを格納するディレクトリにダンプ・ファイルを配置します。

  3. 表領域およびその内容をデータベースから削除します。

構文

DBMS_STREAMS_TABLESPACE_ADM.DETACH_SIMPLE_TABLESPACE(
   tablespace_name       IN  VARCHAR2,
   directory_object      OUT VARCHAR2,
   tablespace_file_name  OUT VARCHAR2);

パラメータ

表167-7 DETACH_SIMPLE_TABLESPACEプロシージャのパラメータ

パラメータ 説明

data_pump_job_name

データ・ポンプ・ジョブ名。命名規則に従う場合やジョブの追跡を簡単にする場合には、データ・ポンプ・ジョブ名を指定します。

NULLの場合、システムによってデータ・ポンプ・ジョブ名が生成されます。

directory_object

データ・ポンプ・エクスポート・ダンプ・ファイルおよびデータ・ポンプ・エクスポート・ログ・ファイルを配置するディレクトリを格納します。このプロシージャは、表領域のデータファイルのディレクトリを使用します。そのため、SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトがこのディレクトリに存在することを確認してください。

データ・ポンプ・エクスポート・ダンプ・ファイルの名前は、.dmp拡張子が付くことを除き、表領域のデータファイル名と同じです。ディレクトリにダンプ・ファイルと同じ名前のファイルが存在する場合は、エラーが発生します。

ログ・ファイルの名前は、.dlg拡張子が付くことを除いて、表領域のデータファイル名と同じです。ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

tablespace_file_name

連結を解除した表領域データファイルの名前を格納します。

使用上の注意

このプロシージャを実行するには、ユーザーが次の要件を満たしている必要があります。

  • EXP_FULL_DATABASEロールを持っている。

  • 表領域に関する情報を含む、1つ以上のデータ・ディクショナリ・ビューへのアクセス権限を持っている。これらのビューには、DBA_TABLESPACESおよびUSER_TABLESPACESが含まれます。

  • DROP TABLESPACE権限を持っている。

  • 表領域を読取り専用にする必要がある場合に、表領域に対するMANAGE TABLESPACEまたはALTER TABLESPACEを持っている。

  • 表領域データファイルを格納するディレクトリのディレクトリ・オブジェクトに対するREADおよびWRITE権限を持っている。この表領域の名前はtablespace_nameパラメータに指定します。このディレクトリにディレクトリ・オブジェクトが存在しない場合、このプロシージャを実行する前にディレクトリ・オブジェクトを作成し、必要な権限を付与します。このディレクトリには、このプロシージャによって生成されるデータ・ポンプ・エクスポート・ダンプ・ファイルも格納されます。

このプロシージャを使用して表領域の連結を解除した後に、ATTACH_SIMPLE_TABLESPACEプロシージャを使用して別のデータベースに表領域を追加できます。データベースがリモート・データベースで、ATTACH_SIMPLE_TABLESPACEプロシージャを使用する場合、DBMS_FILE_TRANSFERパッケージ、FTPまたはその他の方法で、ダンプ・ファイルおよびデータファイルをリモート・システムに転送できます。このプロシージャの2つのOUTパラメータを使用して、連結またはプル操作を実行できます。

自動ストレージ管理(ASM)ディレクトリは、このプロシージャでは使用できません。

注意:

表領域でOracle Managed Files機能を使用している場合、表領域に対して、DETACH_SIMPLE_TABLESPACEプロシージャを使用しないでください。このプロシージャを使用すると、表領域の削除時に、表領域のデータファイルが自動的に削除されます。

167.4.6 DETACH_TABLESPACESプロシージャ

このプロシージャは、自己完結型表領域セットの連結を解除します。指定した表領域セットのすべての表領域がオンラインで、表パーティションが表領域セットの表領域にまたがらないようにする必要があります。

具体的には、このプロシージャは次の操作を実行します。

  1. 指定した表領域セットの読取り/書込み表領域を読取り専用にします。

  2. データ・ポンプを使用して、表領域セットのメタデータをエクスポートし、指定したディレクトリにダンプ・ファイルを配置します。

  3. 指定した表領域セットの表領域およびそれらの内容をデータベースから削除します。

このプロシージャは、指定した表領域セットで構成されるデータファイルの移動またはコピーは行いません。

このプロシージャはオーバーロードされていて、次のバージョンで構成されています。

  • このプロシージャの一方のバージョンは、datapump_job_nameパラメータ内でデータ・ポンプ・ジョブ名を使用します。このジョブは、データ・ポンプ・エクスポートを実行します。このバージョンのプロシージャは、エクスポート・ダンプ・ファイルおよびエクスポート・ログ・ファイルを指定のディレクトリに配置することによって連結操作を完了しますが、これらのファイルはファイル・グループ・バージョンには追加されません。

  • このプロシージャの他方のバージョンは、表領域リポジトリ内の複数バージョンの表領域セットで構成可能なファイル・グループを使用します。表領域リポジトリは、ファイル・グループ・リポジトリ内の表領域セットのコレクションです。このバージョンのプロシージャを実行すると、データ・ポンプ・エクスポートが実行され、また、このバージョンのプロシージャは、エクスポート・ダンプ・ファイルおよびエクスポート・ログ・ファイルを適切なファイル・グループ・バージョンに配置することによってクローニング操作を完了します。表領域セットで構成されるデータファイルは、移動またはコピーはされませんが、連結解除されたバージョンで参照されます。ファイル・グループおよびバージョンは、それぞれfile_group_nameパラメータおよびversion_nameパラメータを使用して指定します。また、接続先プラットフォームが異なる場合は、ATTACH_TABLESPACESプロシージャのファイル・グループ・バージョンを使用して接続先データベースに連結される際に、表領域セットが正しいプラットフォームに自動的に移行します。

注意:

表領域セットのいずれかの表領域で、Oracle Managed Files機能を使用している場合、DETACH_TABLESPACESプロシージャを使用しないでください。このプロシージャを使用すると、これらの表領域の削除時に、表領域のデータファイルが自動的に削除されます。

構文

DBMS_STREAMS_TABLESPACE_ADM.DETACH_TABLESPACES(
   datapump_job_name         IN OUT VARCHAR2,
   tablespace_names          IN     TABLESPACE_SET,
   dump_file                 IN     FILE,
   log_file                  IN     FILE  DEFAULT NULL,
   tablespace_files          OUT    FILE_SET);

DBMS_STREAMS_TABLESPACE_ADM.DETACH_TABLESPACES(
   tablespace_names          IN TABLESPACE_SET,
   export_directory_object   IN VARCHAR2  DEFAULT NULL,
   log_file_directory_object IN VARCHAR2  DEFAULT NULL,
   file_group_name           IN VARCHAR2,
   version_name              IN VARCHAR2  DEFAULT NULL,
   repository_db_link        IN VARCHAR2  DEFAULT NULL);

パラメータ

表167-8 DETACH_TABLESPACESプロシージャのパラメータ

パラメータ 説明

data_pump_job_name

データ・ポンプ・ジョブ名。命名規則に従う場合やジョブの追跡を簡単にする場合には、データ・ポンプ・ジョブ名を指定します。

NULLの場合、システムによってデータ・ポンプ・ジョブ名が生成されます。

tablespace_names

連結解除する表領域セット。

NULLの場合は、エラーが発生します。

dump_file

エクスポートするデータ・ポンプ・ダンプ・ファイルのファイル名。

設定がNULL、またはファイル属性がNULLの場合、エラーが発生します。

指定したファイルが存在する場合は、エラーが発生します。

log_file

データ・ポンプ・エクスポート用のログ・ファイル名を指定します。

設定がNULL、または1つ以上のファイル・パラメータがNULLの場合、システムは拡張子.dlgでログ・ファイル名を作成し、それをダンプ・ファイル・ディレクトリに配置します。

ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

tablespace_files

連結を解除する表領域セットのデータファイルの名前を格納します。

export_directory_object

データ・ポンプ・エクスポート・ダンプ・ファイルを配置するディレクトリ・オブジェクト。システムによって、拡張子.dmpを持つダンプ・ファイル名が作成されます。

NULLに設定すると、バージョンのデフォルトのディレクトリ・オブジェクトにダンプ・ファイルが配置されます。このバージョンにデフォルトのディレクトリ・オブジェクトが存在しない場合は、ファイル・グループのデフォルトのディレクトリ・オブジェクトが使用されます。

バージョンおよびファイル・グループのいずれのデフォルトのディレクトリ・オブジェクトも存在しない場合にNULLに設定すると、エラーが発生します。

log_file_directory_object

データ・ポンプ・エクスポート・ログ・ファイルを配置するディレクトリ・オブジェクト。システムによって、拡張子.dlgを持つログ・ファイル名が作成されます。

NULLに設定すると、エクスポート・ログ・ファイルがダンプ・ファイルと同じディレクトリに配置されます。

file_group_name

[schema_name.]file_group_nameの形式で指定したファイル・グループの名前。たとえば、スキーマがhq_dbaで、ファイル・グループ名がsalesの場合は、hq_dba.salesと指定します。スキーマを指定しない場合は、現行のユーザー名がデフォルトで使用されます。

指定されたファイル・グループが存在しない場合は、プロシージャによって作成されます。

version_name

連結解除する表領域セットを配置するバージョンの名前。バージョン名に、正の整数は指定できません。

指定されたバージョンが存在しない場合は、プロシージャによって作成されます。

指定されたバージョンが存在する場合は、そのバージョンに表領域セットが追加されます。1つのバージョンに存在可能なデータ・ポンプ・エクスポート・ダンプ・ファイルは1つのみです。

NULLに設定すると、新しいバージョンが作成されます。このバージョンは、バージョン番号を使用して管理できます。

repository_db_link

ファイル・グループがリモート・データベースにある場合は、そのファイル・グループが含まれているデータベースへのデータベース・リンクの名前を指定します。データベース・リンクは、このプロシージャを実行するユーザーがアクセスできる必要があります。

このパラメータがNULL以外の場合、export_directory_objectで指定するディレクトリ・オブジェクトは、ローカル・データベースおよびリモート・データベースに存在する必要があります。export_directory_objectNULLの場合は、両方のデータベースにデフォルトのディレクトリ・オブジェクトが存在する必要があります。ディレクトリ・オブジェクトは各データベースで同じ名前を持ち、共有ファイル・システムで同じディレクトリに対応している必要があります。

NULLに設定すると、データベース・リンクは使用されず、ローカル・データベース内のファイル・グループが使用されます。

使用上の注意

このプロシージャのいずれかのバージョンを実行するには、ユーザーが次の要件を満たしている必要があります。

  • EXP_FULL_DATABASEロールを持っている。

  • 表領域に関する情報を含む、1つ以上のデータ・ディクショナリ・ビューへのアクセス権限を持っている。これらのビューには、DBA_TABLESPACESおよびUSER_TABLESPACESが含まれます。

  • DROP TABLESPACE権限を持っている。

  • 表領域を読取り専用にする必要がある場合に、表領域に対するMANAGE TABLESPACEまたはALTER TABLESPACEを持っている。

  • 表領域セットのデータファイルを格納するディレクトリのディレクトリ・オブジェクトに対するREAD権限を持っている。これらの表領域の名前はtablespace_namesパラメータに指定します。これらのいずれかのディレクトリにディレクトリ・オブジェクトが存在しない場合、このプロシージャを実行する前にディレクトリ・オブジェクトを作成し、必要な権限を付与します。

  • dump_fileパラメータまたはexport_directory_objectパラメータに指定された、データ・ポンプ・エクスポート・ダンプ・ファイルを格納するディレクトリ・オブジェクトに対するREADおよびWRITE権限を持っている。

  • log_fileパラメータ(NULL以外)またはlog_file_directory_objectパラメータ(NULL以外)に指定された、データ・ポンプ・エクスポート・ログ・ファイルを格納するディレクトリ・オブジェクトに対するWRITE権限を持っている。

このプロシージャのファイル・グループ・バージョンを実行する場合、ユーザーはファイル・グループの管理に必要な権限を持っている必要があります。

自動ストレージ管理(ASM)ディレクトリは、データファイルおよびエクスポート・ダンプ・ファイルを格納するディレクトリ・オブジェクトには指定できますが、ログ・ファイルを格納するディレクトリ・オブジェクトには指定できません。

このプロシージャを使用して表領域セットを連結解除した後に、ATTACH_TABLESPACESプロシージャを使用して別のデータベースに表領域を連結できます。

参照:

167.4.7 PULL_SIMPLE_TABLESPACEプロシージャ

このプロシージャは、リモート・データベースから単純な表領域をコピーし、現在のデータベースに連結します。

リモート・データベースの指定する表領域はオンラインである必要があります。

具体的には、このプロシージャは次の操作を実行します。

  1. リモート・データベースの指定する表領域が読取り専用でない場合、読取り専用にします。

  2. データ・ポンプを使用して、表領域のメタデータをエクスポートします。

  3. データベース・リンクおよびDBMS_FILE_TRANSFERパッケージを使用して、表領域のデータファイルおよびデータ・ポンプ・エクスポートのログ・ファイルを現在のデータベースに転送します。

  4. 指定した表領域のデータファイルおよびデータ・ポンプ・エクスポートのログ・ファイルをローカル・データベースの指定したディレクトリに配置します。

  5. このプロシージャによって表領域を読取り専用にした場合、表領域を読取り/書込みにします。

  6. データ・ポンプを使用して、表領域のメタデータをローカル・データベースの表領域にインポートします。

さらに、このプロシージャは、リモート・データベースのプラットフォームがローカル・データベース・プラットフォームと異なる場合に、ローカル・プラットフォームで使用できる表領域のデータファイルをオプションで作成できます。

構文

DBMS_STREAMS_TABLESPACE_ADM.PULL_SIMPLE_TABLESPACE(
   tablespace_name          IN VARCHAR2,
   database_link            IN VARCHAR2,
   directory_object         IN VARCHAR2  DEFAULT NULL,
   conversion_extension     IN VARCHAR2  DEFAULT NULL,
   convert_directory_object IN VARCHAR2  DEFAULT NULL);

パラメータ

表167-9 PULL_SIMPLE_TABLESPACEプロシージャのパラメータ

パラメータ 説明

tablespace_name

プルする表領域。

NULLの場合は、エラーが発生します。

database_link

プルする表領域を格納するデータベースへのデータベース・リンクの名前。データベース・リンクは、このプロシージャを実行するユーザーがアクセスできる必要があります。

NULLの場合は、エラーが発生します。

directory_object

表領域のデータファイルをコピーするローカル・データベース上のディレクトリ・オブジェクト。SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトの名前を指定する必要があります。

データ・ポンプ・インポート・ログ・ファイルはこのディレクトリに書き込まれます。ログ・ファイルの名前は、.plg拡張子が付くことを除いて、表領域のデータファイル名と同じです。ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

NULLの場合は、エラーが発生します。

conversion_extension

プラットフォームがリモート・エクスポート・データベースおよび現在のインポート・データベースと同じ場合、NULLを指定します。

エクスポート・データベースとインポート・データベースのプラットフォームが異なる場合、リモート・データベースの表領域データファイルの拡張子と異なる表領域データファイルの拡張子を指定します。この場合、プロシージャはデータファイルをインポート・データベースに転送し、現在のインポート・データベース・プラットフォームと互換性のある形式に自動的に変換します。変換が完了すると、インポート・データベースの元のデータファイルは削除されます。

convert_directory_object

プラットフォームがリモート・エクスポート・データベースおよび現在のインポート・データベースと同じ場合、NULLを指定します。

エクスポート・データベースとインポート・データベースでプラットフォームが異なる場合は、ローカル・エクスポート・データベースのディレクトリ・オブジェクトを指定します。このプロシージャは、ディレクトリ・オブジェクトを使用してプラットフォーム変換を行った後、リモート・データベースにファイルを転送します。SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトの名前を指定する必要があります。

使用上の注意

このプロシージャを実行するには、ユーザーはリモート・データベースの次の要件を満たしている必要があります。

  • EXP_FULL_DATABASEロールを持っている。

  • DBMS_STREAMS_TABLESPACE_ADMパッケージに対するEXECUTE権限を持っている。

  • 表領域に関する情報を含む、1つ以上のデータ・ディクショナリ・ビューへのアクセス権限を持っている。これらのビューには、DBA_TABLESPACESおよびUSER_TABLESPACESが含まれます。

  • 表領域を読取り専用にする必要がある場合に、表領域に対してMANAGE TABLESPACEまたはALTER TABLESPACE権限を持っている。

  • 表領域のデータファイルを格納するディレクトリのディレクトリ・オブジェクトに対するREAD権限を持っている。この表領域の名前はtablespace_nameパラメータに指定します。このディレクトリにディレクトリ・オブジェクトが存在しない場合、このプロシージャを実行する前にディレクトリ・オブジェクトを作成し、必要な権限を付与します。

このプロシージャを実行するには、ユーザーはローカル・データベースの次の要件を満たしている必要があります。

  • IMP_FULL_DATABASEロールおよびEXECUTE_CATALOG_ROLEロールを持っている。

  • log_fileパラメータがNULL以外の場合に、そのパラメータに指定されたデータ・ポンプ・エクスポート・ログ・ファイルを格納するディレクトリ・オブジェクトに対するWRITE権限を持っている。

  • directory_objectパラメータに指定された、表領域のデータファイルを保持するディレクトリ・オブジェクトに対するWRITE権限を持っている。

自動ストレージ管理(ASM)ディレクトリは、このプロシージャでは使用できません。

参照:

概要

167.4.8 PULL_TABLESPACESプロシージャ

このプロシージャは、リモート・データベースから自己完結型表領域セットをコピーし、現在のデータベースに表領域を連結します。

リモート・データベースの指定した表領域セットのすべての表領域がオンラインである必要があります。

具体的には、このプロシージャは次の操作を実行します。

  1. リモート・データベースに指定した表領域セットの読取り/書込み表領域を読取り専用にします。

  2. データ・ポンプを使用して、表領域セットの表領域のメタデータをエクスポートします。

  3. データベース・リンクおよびDBMS_FILE_TRANSFERパッケージを使用して、表領域セットのデータファイルおよびデータ・ポンプ・エクスポートのログ・ファイルを現在のデータベースに転送します。

  4. 指定した表領域セットを構成するデータファイルを、ローカル・データベースの指定したディレクトリに配置します。

  5. データ・ポンプ・エクスポートのログ・ファイルをローカル・データベースの指定したディレクトリに配置します。

  6. このプロシージャによって表領域を読取り専用にした場合、表領域を読取り/書込みにします。

  7. データ・ポンプ・を使用して、表領域のメタデータをローカル・データベースの表領域セットにインポートします。

さらに、このプロシージャはオプションで、リモート・データベースのプラットフォームが、ローカル・データベース・プラットフォームと異なる場合に、ローカル・プラットフォームで使用できる表領域セットのデータファイルを作成できます。

構文

DBMS_STREAMS_TABLESPACE_ADM.PULL_TABLESPACES(
   datapump_job_name            IN OUT VARCHAR2,
   database_link                IN     VARCHAR2,
   tablespace_names             IN     TABLESPACE_SET,
   tablespace_directory_objects IN     DIRECTORY_OBJECT_SET,
   log_file                     IN     FILE,
   conversion_extension         IN     VARCHAR2  DEFAULT NULL,
   convert_directory_object     IN     VARCHAR2  DEFAULT NULL);

パラメータ

表167-10 PULL_TABLESPACESプロシージャのパラメータ

パラメータ 説明

data_pump_job_name

データ・ポンプ・ジョブ名。命名規則に従う場合やジョブの追跡を簡単にする場合には、データ・ポンプ・ジョブ名を指定します。

NULLの場合、システムによってデータ・ポンプ・ジョブ名が生成されます。

database_link

プルする表領域セットを格納するデータベースへのデータベース・リンクの名前。データベース・リンクは、このプロシージャを実行するユーザーがアクセスできる必要があります。

NULLの場合は、エラーが発生します。

tablespace_names

プルする表領域セット。

NULLの場合は、エラーが発生します。

tablespace_directory_objects

表領域のデータファイルをコピーするディレクトリ・オブジェクトのセット。セット内に複数のディレクトリ・オブジェクトがある場合、データファイルはセット内の各ディレクトリ・オブジェクトに順番にコピーされます。この場合、ディレクトリ・オブジェクト・セットの最後のディレクトリ・オブジェクトに達すると、セット内の先頭のディレクトリ・オブジェクトから、データファイルのコピーが再開されます。

NULLの場合は、エラーが発生します。

log_file

データ・ポンプ・エクスポート用のログ・ファイル名を指定します。

設定NULL、または1つ以上のファイル・パラメータがNULLの場合、システムは拡張子.plgでログ・ファイル名を作成し、それをいずれかのデータファイル・ディレクトリに配置します。

ディレクトリにログ・ファイルと同じ名前のファイルが存在する場合、ファイルは上書きされます。

conversion_extension

プラットフォームがリモート・エクスポート・データベースおよび現在のインポート・データベースと同じ場合、NULLを指定します。

エクスポート・データベースとインポート・データベースのプラットフォームが異なる場合、リモート・データベースの表領域データファイルの拡張子と異なる表領域データファイルの拡張子を指定します。この場合、プロシージャはデータファイルをインポート・データベースに転送し、現在のインポート・データベース・プラットフォームと互換性のある形式に自動的に変換します。変換が完了すると、インポート・データベースの元のデータファイルは削除されます。

convert_directory_object

プラットフォームがリモート・エクスポート・データベースおよび現在のインポート・データベースと同じ場合、NULLを指定します。

エクスポート・データベースとインポート・データベースでプラットフォームが異なる場合は、ローカル・エクスポート・データベースのディレクトリ・オブジェクトを指定します。このプロシージャは、ディレクトリ・オブジェクトを使用してプラットフォーム変換を行った後、リモート・データベースにファイルを転送します。SQL文CREATE DIRECTORYを使用して作成されたディレクトリ・オブジェクトの名前を指定する必要があります。

使用上の注意

このプロシージャを実行するには、ユーザーはリモート・データベースの次の要件を満たしている必要があります。

  • EXP_FULL_DATABASEロールを持っている。

  • DBMS_STREAMS_TABLESPACE_ADMパッケージに対するEXECUTE権限を持っている。

  • 表領域に関する情報を含む、1つ以上のデータ・ディクショナリ・ビューへのアクセス権限を持っている。これらのビューには、DBA_TABLESPACESおよびUSER_TABLESPACESが含まれます。

  • 表領域を読取り専用にする必要がある場合に、表領域に対してMANAGE TABLESPACEまたはALTER TABLESPACE権限を持っている。

  • 表領域セットのデータファイルを格納するディレクトリのディレクトリ・オブジェクトに対するREAD権限を持っている。これらの表領域の名前はtablespace_namesパラメータに指定します。これらのいずれかのディレクトリにディレクトリ・オブジェクトが存在しない場合、このプロシージャを実行する前にディレクトリ・オブジェクトを作成し、必要な権限を付与します。

このプロシージャを実行するには、ユーザーはローカル・データベースの次の要件を満たしている必要があります。

  • IMP_FULL_DATABASEロールおよびEXECUTE_CATALOG_ROLEロールを持っている。

  • log_fileパラメータがNULL以外の場合に、そのパラメータに指定されたデータ・ポンプ・エクスポート・ログ・ファイルを格納するディレクトリ・オブジェクトに対するWRITE権限を持っている。

  • tablespace_directory_objectsパラメータに指定された、セット内の表領域のデータファイルを保持するディレクトリ・オブジェクトに対するWRITE権限を持っている。

自動ストレージ管理(ASM)ディレクトリは、データファイルおよびエクスポート・ダンプ・ファイルを格納するディレクトリ・オブジェクトには指定できますが、ログ・ファイルを格納するディレクトリ・オブジェクトには指定できません。

参照:

概要