2.3 エクスポート操作中のフィルタ処理

Oracle Data Pump Exportは、データとメタデータのフィルタ処理機能を提供します。この機能により、エクスポートする情報の種類を効果的に制限できます。

2.3.1 Oracle Data Pumpエクスポートのデータ・フィルタ

エクスポートする表の行に制限を指定するには、QUERYパラメータおよびSAMPLEパラメータを通じてOracle Data Pumpのデータ固有のフィルタ処理を使用します。

Oracle Data Pumpは、メタデータのフィルタ処理のためにデータのフィルタ処理を間接的に実装することもできます。この処理では、表オブジェクトおよび関連付けられた行データを含めたり、除外したりできます。

各データ・フィルタは、表ごとにジョブ内で1回指定できます。同じ名前を使用する異なるフィルタが特定の表とジョブ全体の両方に適用された場合は、特定の表に対して提供されたフィルタ・パラメータが優先されます。

2.3.2 Oracle Data Pumpのメタデータ・フィルタ

エクスポート操作にオブジェクトを含めるまたは除外するには、Oracle Data Pumpのメタデータ・フィルタを使用します。

メタデータのフィルタ処理は、EXCLUDEおよびINCLUDEパラメータによって実装されます。メタデータ・フィルタは、エクスポートやインポート操作に含めたり除外したりする必要があるオブジェクトを識別します。たとえば、パッケージ仕様またはパッケージ本体を含まない全体エクスポートを要求できます。

フィルタを正しく使用して必要な結果を得た場合は、識別されたオブジェクトの依存オブジェクトも、識別されたオブジェクトとともに処理されます。たとえば、操作に索引を含めるようにフィルタで指定すると、その索引の統計も含まれます。同様に、フィルタで表を除外すると、その表に対する索引、制約、権限およびトリガーも除外されます。

Oracle Database 21c以降、Oracle Data Pumpでは、同じコマンド内でINCLUDEEXCLUDEの両方のパラメータを設定できます。コマンドに両方のパラメータを含めると、Oracle Data PumpではINCLUDEパラメータが最初に処理され、Oracle Data Pumpジョブには、含まれていると識別されたオブジェクトのみが含まれるようになります。次に、EXCLUDEパラメータが処理され、ジョブによって処理されるオブジェクトがさらに制限される場合があります。コマンドの実行時に、INCLUDEオブジェクトのリストにあるEXCLUDEパラメータで指定されたすべてのオブジェクトが削除されます。

1つのオブジェクト型に対して複数のフィルタが指定されている場合は、それらのフィルタに対して暗黙的なAND処理が適用されます。つまり、ジョブに関連するオブジェクトは、オブジェクト型に適用されるすべてのフィルタで処理される必要があります。

1つのジョブ内で同じメタデータ・フィルタ名を複数回指定できます。

有効なオブジェクト・タイプのリストを表示するには、DATABASE_EXPORT_OBJECTS (全体モードの場合)、SCHEMA_EXPORT_OBJECTS (スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS (表モードの場合)、TABLESPACE_EXPORT_OBJECTS (表領域モードの場合)、TRANSPORTABLE_EXPORT_OBJECTS (トランスポータブル表領域モードの場合)ビューを問い合せます。OBJECT_PATH列にリストされる値が有効なオブジェクト・タイプです。たとえば、次の問合せを実行できます。

SQL> SELECT OBJECT_PATH, COMMENTS FROM SCHEMA_EXPORT_OBJECTS
  2  WHERE OBJECT_PATH LIKE '%GRANT' AND OBJECT_PATH NOT LIKE '%/%';

次に、この問合せの出力結果の例を示します。

OBJECT_PATH
--------------------------------------------------------------------------------
COMMENTS
--------------------------------------------------------------------------------
GRANT
Object grants on the selected tables
 
OBJECT_GRANT
Object grants on the selected tables
 
PROCDEPOBJ_GRANT
Grants on instance procedural objects
 
PROCOBJ_GRANT
Schema procedural object grants in the selected schemas
 
ROLE_GRANT
Role grants to users associated with the selected schemas
 
SYSTEM_GRANT
System privileges granted to users associated with the selected schemas

関連トピック