プライマリ・コンテンツに移動
Oracle® Databaseユーティリティ
11gリリース2 (11.2)
B56303-08
  目次へ移動
目次
索引へ移動
索引

前
 
次
 

3 データ・ポンプ・インポート

この章では、Oracle Data Pump Import(impdp)ユーティリティについて説明します。この章の内容は、次のとおりです。

データ・ポンプ・インポート・ユーティリティとは

データ・ポンプ・インポート(以降、インポート・ユーティリティと呼びます)は、エクスポート・ダンプ・ファイル・セットをターゲット・システムにロードするためのユーティリティです。ダンプ・ファイル・セットは、表データ、データベース・オブジェクトのメタデータ、制御情報を含む1つ以上のディスク・ファイルで構成されています。これらのファイルは独自のバイナリ形式で書き込まれています。データ・ポンプ・インポート・ユーティリティは、インポート操作中、これらのファイルを使用してダンプ・ファイル・セット内の各データベース・オブジェクトの位置を特定します。

また、ダンプ・ファイルを介さずに、ソース・データベースから直接ターゲット・データベースをロードするために使用することもできます。これはネットワーク・インポートと呼ばれます。

データ・ポンプ・インポート・ユーティリティでは、インポート・モードで設定されているとおりにジョブによって、データおよびメタデータのサブセットが、ダンプ・ファイル・セットまたはソース・データベース(ネットワーク・インポートの場合)から移動されるように指定できます。この指定は、インポート・ユーティリティのコマンドによって実装されるデータ・フィルタおよびメタデータ・フィルタを使用して行います。詳細は、「インポート操作中のフィルタ処理」を参照してください。

インポートを使用できる様々な方法の例については、「データ・ポンプ・インポートの使用例」を参照してください。

データ・ポンプ・インポートの起動

データ・ポンプ・インポート・ユーティリティは、impdpコマンドを使用して起動します。インポート操作の特性は、指定するインポート・パラメータによって決定されます。これらのパラメータは、コマンドラインまたはパラメータ・ファイルのいずれかで指定できます。


注意:

インポート・ユーティリティは、Oracleサポート・サービスから要求された場合以外、SYSDBAとして起動しないでください。SYSDBAは内部的に使用され、一般ユーザーとは異なる特別な機能を持ちます。


注意:

NOLOGGING句を有効にして作成された表または表領域に対してデータ・ポンプ・インポートを実行する場合でも、REDOログ・ファイルが生成される場合があることに注意してください。このような場合に生成されるREDOは、通常、マスター表のメンテナンスを目的としているか、または基礎となる再帰的領域トランザクション、データ・ディクショナリの変更、およびロギングを必要とする表の索引メンテナンスに関係しています。

インポート・ユーティリティの起動の詳細は、次の項を参照してください。

データ・ポンプ・インポートのインタフェース

データ・ポンプ・インポートは、コマンドライン、パラメータ・ファイルまたは対話方式コマンド・モードを使用して実行できます。

  • コマンドライン・インタフェース: 直接コマンドラインでインポートのパラメータを指定できます。コマンドライン・インタフェースで使用可能なパラメータの詳細は、「インポート・ユーティリティのコマンドライン・モードで使用可能なパラメータ」を参照してください。

  • パラメータ・ファイル・インタフェース: パラメータ・ファイルでコマンドラインのパラメータを指定できます。パラメータ・ファイルはネストできないため、PARFILEパラメータのみが例外となります。値の指定に引用符が必要なパラメータを指定する場合は、パラメータ・ファイルを使用することをお薦めします。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。

  • 対話方式コマンド・インタフェース: 端末へのロギングを中止してインポート・ユーティリティのプロンプトを表示します。対話方式コマンド・モード固有のコマンドも含めて、様々なコマンドが入力できます。このモードは、コマンドライン・インタフェースまたはパラメータ・ファイル・インタフェースで開始されたインポート操作中に[Ctrl]キーを押しながら[C]キーを押すと使用可能になります。対話方式コマンド・モードは、実行中のジョブまたは停止されたジョブに接続した場合も使用可能になります。

    対話方式コマンド・モードで使用可能なコマンドの詳細は、「インポート・ユーティリティの対話方式コマンド・モードで使用可能なコマンド」を参照してください。

データ・ポンプ・インポートのモード

インポート・モードで、何をインポートするかを決定します。指定したモードは、操作のソース(ダンプ・ファイル・セットまたはNETWORK_LINKパラメータが指定されている場合は別のデータベース)に適用されます。

インポート操作のソースがダンプ・ファイル・セットの場合、モードの指定はオプションです。モードを指定していない場合、インポート・ユーティリティは、エクスポート操作実行時のモードでダンプ・ファイル・セット全体をロードしようとします。

モードは、適切なパラメータを使用してコマンドラインで指定します。使用可能なモードについては、次の項で説明します。


注意:

全体モード・エクスポートによって作成されたダンプ・ファイルをインポートする場合、インポート操作はSYSアカウントのパスワードをソース・データベースからコピーしようとします。これは、失敗する場合があります(パスワードが共有パスワード・ファイル内にある場合など)。失敗した場合は、インポートの完了後に、ターゲット・データベース上のSYSアカウントのパスワードを任意のパスワードに設定する必要があります。

全体インポート・モード

全体インポートは、FULLパラメータを使用して指定します。全体インポート・モードでは、ソース(ダンプ・ファイル・セットまたは別のデータベース)の全内容がターゲット・データベースにロードされます。これは、ファイル・ベース・インポートのデフォルトです。ソースが別のデータベースの場合は、DATAPUMP_IMP_FULL_DATABASEロールが必要です。

権限のないユーザーの場合、相互スキーマ参照はインポートされません。たとえば、インポートを実行するユーザーのスキーマ内の表にトリガーが定義されていても、そのトリガーが別のユーザーのスキーマに存在している場合はインポートされません。

NETWORK_LINKパラメータを完全インポートに使用する場合は、ターゲット・データベースではDATAPUMP_IMP_FULL_DATABASEロールが必要で、ソース・データベースではDATAPUMP_EXP_FULL_DATABASEロールが必要です。


参照:

「FULL」

スキーマ・モード

スキーマ・インポートは、SCHEMASパラメータを使用して指定します。スキーマ・インポートでは、指定されたスキーマが所有しているオブジェクトのみがロードされます。ソースは、全体インポート・モード、表モード、表領域モードまたはスキーマ・モードのエクスポート・ダンプ・ファイル・セット、または別のデータベースです。DATAPUMP_IMP_FULL_DATABASEロールを所有している場合は、スキーマ・リストを指定できます。これにより、スキーマ内のオブジェクトに加えてスキーマ自体(システム権限を含む)もデータベース内に作成されます。

相互スキーマ参照は、残りのスキーマが現行のスキーマに再マップされないかぎり、権限のないユーザーに対してインポートされません。たとえば、インポートを実行するユーザーのスキーマ内の表にトリガーが定義されていても、そのトリガーが別のユーザーのスキーマに存在している場合はインポートされません。


参照:

「SCHEMAS」

表モード

表モード・インポートは、TABLESパラメータを使用して指定します。表モードでは、指定した表、パーティションおよびそれらの依存オブジェクトのみがロードされます。ソースは、全体インポート・モード、スキーマ・モード、表領域モードまたは表モードのエクスポート・ダンプ・ファイル・セット、または別のデータベースです。自分のスキーマに存在しない表を指定するには、DATAPUMP_IMP_FULL_DATABASEロールが必要です。

TRANPORTABLE=ALWAYSパラメータをTABLESパラメータと組み合せて指定することで、表モードのインポート中にトランスポータブル・オプションを使用できます。これには、NETWORK_LINKパラメータも使用する必要があることに注意してください。

表領域モード

表領域モードのインポートは、TABLESPACESパラメータを使用して指定します。表領域モードでは、指定した表領域内のすべてのオブジェクトが、依存オブジェクトとともにロードされます。ソースは、全体インポート・モード、スキーマ・モード、表領域モードまたは表モードのエクスポート・ダンプ・ファイル・セット、または別のデータベースです。権限のないユーザーの場合、現行のスキーマに再マッピングされていないオブジェクトは処理されません。

トランスポータブル表領域モード

トランスポータブル表領域インポートは、TRANSPORT_TABLESPACESパラメータを使用して指定します。トランスポータブル表領域モードでは、(NETWORK_LINKパラメータで指定された)データベース・リンクを使用して、別のデータベースからメタデータがロードされます。ダンプ・ファイルは含まれません。TRANSPORT_DATAFILESパラメータで指定した実際のデータ・ファイルは、ターゲット・データベースで使用するために、通常は、データ・ファイルをターゲット・システムにコピーすることによって、ソース・システムで使用可能にする必要があります。

暗号化された列は、トランスポータブル表領域モードではサポートされていません。

このモードには、DATAPUMP_IMP_FULL_DATABASEロールが必要です。


注意:

トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。ターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。

トランスポータブル表領域モードでのタイムゾーン・ファイルのバージョンに関する考慮点

トランスポータブル表領域モードで実行されるジョブには、タイムゾーン・ファイルのバージョンに関連する次の要件があります。

  • ソースがOracle Database 11g リリース2(11.2.0.2)以降で、TIMESTAMP WITH TIMEZONE(TSTZ)列を使用するトランスポータブル・セット内に表がある場合、ターゲット・データベースのタイムゾーン・ファイルのバージョンは、ソース・データベースのタイムゾーン・ファイルのバージョンと完全に一致する必要があります。

  • ソースがOracle Database 11g リリース2(11.2.0.2)よりも前の場合、トランスポータブル・セットがTSTZ列を使用するかどうかに関係なく、タイムゾーン・ファイルのバージョンはすべてのトランスポータブル・ジョブのソースおよびターゲット・データベースで同じである必要があります。

これらの要件が満たされない場合、インポートが実行される前にインポート・ジョブが中断されます。これは、インポート・ジョブによるオブジェクトのインポートを許可すると、TSTZ列を含む表を読み込む際に、結果に不整合が生じる可能性があるためです。

データベースのタイムゾーン・ファイルのバージョンを識別するには、次のSQL文を実行します。

SQL> SELECT VERSION FROM V$TIMEZONE_FILE;

参照:


ネットワークに関する考慮点

データ・ポンプ・インポート・ユーティリティの起動時、接続文字列には接続識別子を指定できます。接続識別子では、現行のOracleシステム識別子(SID)によって指定した現行のインスタンスとは別のデータベース・インスタンスを指定できます。接続識別子には、Oracle*Net接続記述子または接続記述子にマップするネット・サービス名(通常、tnsnames.oraファイルで定義される)を指定できます。接続識別子を使用するには、Oracle Net Listenerが実行中であることが必要です(デフォルト・リスナーを起動するには、lsnrctl startと入力します)。次に、inst1が接続識別子である場合のこのタイプの接続の例を示します。

impdp hr@inst1 DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp TABLES=employees

インポートによってパスワードの入力を要求されます。

Password: password
 

ローカル・インポート・クライアントは接続識別子inst1 (ネット・サービス名)によって識別されるデータベース・インスタンスに接続し、ダンプ・ファイルhr.dmpからinst1にデータをインポートします。

インポート・ユーティリティの起動時に接続識別子を指定することと、NETWORK_LINKパラメータを使用してインポート操作を実行することは異なります。インポート操作を開始して接続識別子を指定すると、接続識別子によって識別されるデータベース・インスタンスにローカルのインポート・クライアントが接続され、コマンドラインで指定されるダンプ・ファイルからそのデータベース・インスタンスにデータがインポートされます。

一方、NETWORK_LINKパラメータを使用してインポートを実行すると、インポートはデータベース・リンクを使用して実行され、ダンプ・ファイルは含まれません。(データベース・リンクとは2つの物理データベース・サーバー間の接続で、データベース・リンクによってクライアントは2つの物理データベース・サーバーに1つの論理データベースとしてアクセスできます。)


参照:

  • 「NETWORK_LINK」

  • データベース・リンクの詳細は、Oracle Database管理者ガイドを参照してください。

  • 接続識別子およびOracle Net Listenerの詳細は、『Oracle Database Net Services管理者ガイド』を参照してください。

  • 『Oracle Database Heterogeneous Connectivityユーザーズ・ガイド』


インポート操作中のフィルタ処理

データ・ポンプ・インポート・ユーティリティでは、データとメタデータのフィルタ処理機能を使用して、インポートする情報の種類を効果的に制限できます。

データ・フィルタ

データ固有のフィルタ処理は、QUERYおよびSAMPLEパラメータによって実装されます。このパラメータは、表のインポートされる行に対する制限を指定します。メタデータのフィルタ処理のため、間接的にデータのフィルタ処理が実行される場合もあります。この処理では、表オブジェクトおよび関連付けられた行データを含めたり、除外することができます。

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

メタデータ・フィルタ

データ・ポンプ・インポート・ユーティリティで提供されるメタデータのフィルタ処理機能は、オリジナルのインポート・ユーティリティと比較すると大幅に拡張されています。メタデータのフィルタ処理は、EXCLUDEおよびINCLUDEパラメータによって実装されます。EXCLUDEおよびINCLUDEは、相互に排他的なパラメータです。

メタデータ・フィルタは、データ・ポンプ操作に含めるか、またはその操作から除外するオブジェクトを識別します。たとえば、パッケージ仕様またはパッケージ本体を含まない全体インポートを要求できます。

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

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

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

DATABASE_EXPORT_OBJECTS(全体モードの場合)、SCHEMA_EXPORT_OBJECTS(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS(表および表領域モードの場合)ビューを問い合せて、有効なオブジェクト・タイプ値の一覧を表示できます。OBJECT_PATH列にリストされる値が有効なオブジェクト・タイプです。完全なオブジェクト・パス名は、インポート・モードでなくエクスポート・モードによって決定されます。


参照:


インポート・ユーティリティのコマンドライン・モードで使用可能なパラメータ

この項では、データ・ポンプ・インポート・ユーティリティのコマンドライン・モードで使用可能なパラメータについて説明します。インポート・パラメータを使用する前に、必ず次の項を読んでください。

ここで説明する内容の多くは、パラメータの使用例を含みます。使用例を実行するために必要な環境の設定の詳細は、次の項を参照してください。

インポート・パラメータの指定

値を複数個指定できるパラメータでは、カンマまたは空白で値を区切ることができます。たとえば、TABLES=employees,jobsまたはTABLES=employees jobsのように指定できます。

入力するパラメータごとに、等号(=)と値を入力する必要があります。それ以外の方法では、1つ前のパラメータ指定がどこで完了し、新しいパラメータ指定がどこから始まるかをデータ・ポンプに伝えることができません。たとえば、次のコマンドラインの場合、NOLOGFILEは有効なパラメータですが、DUMPFILEパラメータに対するダンプ・ファイル名がもう1つあると解釈されます。

impdp DIRECTORY=dpumpdir DUMPFILE=test.dmp NOLOGFILE TABLES=employees

その結果、test.dmpおよびnologfile.dmpという2つのダンプ・ファイルが作成されることになります。

これを回避するには、NOLOGFILE=YESまたはNOLOGFILE=NOのいずれかを指定します。

データ・ポンプ・コマンドラインでの引用符の使用

一部のオペレーティング・システムでは引用符が特殊文字として処理されるため、バックスラッシュ(\)などのエスケープ文字を前に付けないと、アプリケーションに正しく渡されません。これは、コマンドラインとパラメータ・ファイル内の両方に当てはまります。また、オペレーティング・システムによっては、コマンドラインで、特殊文字を含むパラメータ値全体を一重引用符または二重引用符で囲む必要があります。

次の例では、これらの概念を説明します。特定のオペレーティング・システムに該当しない場合があること、および各ユーザーに固有の運用環境は想定していないことに注意してください。

次のように、パラメータ・ファイルでTABLESパラメータを指定するとします。

TABLES = \"MixedCaseTableName\"

これをコマンドラインで指定するとき、一部のオペレーティング・システムでは、次のように一重引用符で囲む必要があります。

TABLES = '\"MixedCaseTableName\"'

コマンドラインで追加の引用符を指定せずに手順を続行するには、パラメータ・ファイルを使用することをお薦めします。また、パラメータ・ファイルを使用し、指定するパラメータ値の文字列の最初の文字に引用符を使用しない場合(たとえば、TABLES=scott."EmP")は、エスケープ文字の使用が不要になるシステムがあることに注意してください。


参照:


インポート・パラメータの使用例

各項に示す例を試行する場合は、次の内容に注意してください。

  • 例に示すようにユーザー名およびパラメータを入力した後、インポート・ユーティリティが起動され、パスワードの入力が要求されます。データベース接続が行われる前に、パスワードを入力する必要があります。

  • ここに示す例の多くは、Oracle Databaseのインストール時にデフォルトでインストールされるシード・データベースのサンプル・スキーマを使用しています。特に、人事管理(hr)スキーマを頻繁に使用します。

  • インポートするダンプ・ファイルを指定する例では、そのダンプ・ファイルが存在するものとします。可能なかぎり、第2章でExportの例を実行すると生成されるダンプ・ファイルを使用します。

  • この例では、ディレクトリ・オブジェクトdpump_dir1およびdpump_dir2がすでに存在し、これらのディレクトリ・オブジェクトについてのREAD権限およびWRITE権限が、hrユーザーに付与されているものとします。ディレクトリ・オブジェクトの作成および権限の割当ての詳細は、「ダンプ・ファイル、ログ・ファイルおよびSQLファイルのデフォルトの位置」を参照してください。

  • 一部の例では、DATAPUMP_EXP_FULL_DATABASEロールおよびDATAPUMP_IMP_FULL_DATABASEロールが必要です。その例では、hrユーザーにこれらのロールが付与されているものとします。

必要に応じて、これらのディレクトリ・オブジェクトの作成と、必要な権限やロールの割当てをDBAに依頼します。

これらのパラメータの構文図は、「データ・ポンプ・インポートの構文図」を参照してください。

特に指定がないかぎり、これらのパラメータはパラメータ・ファイルでも指定できます。

ABORT_STEP

デフォルト: NULL

用途

ジョブの初期化後に、そのジョブを停止する場合に使用します。これによって、データがインポートされる前に、マスター表への問合せが可能となります。

構文および説明

ABORT_STEP=[n | -1]

指定可能な値は、マスター表内のプロセス・オーダー番号と対応しています。各番号の使用結果は次のとおりです。

  • n: 値が0以上の場合は、インポート操作が開始され、対応するプロセス・オーダー番号を持つ、マスター表に格納されているオブジェクトでジョブが中断されます。

  • -1およびジョブがNETWORK_LINKを使用するインポートの場合: ジョブの設定後(ただし、いずれかのオブジェクトのインポート前)に中断します。

  • -1およびジョブがNETWORK_LINKを使用しないインポートの場合: マスター表をロードしてフィルタを適用した後に、ジョブを中断します。

制限事項

  • なし

> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp ABORT_STEP=-1 

ACCESS_METHOD

デフォルト: AUTOMATIC

用途

インポート・ユーティリティで特定のメソッドを使用してデータをロードするように指定します。

構文および説明

ACCESS_METHOD=[AUTOMATIC | DIRECT_PATH | EXTERNAL_TABLE | CONVENTIONAL]

デフォルトのメソッドがなんらかの理由で動作しない場合に別のネイティブ・メソッドを試行できるように、ACCESS_METHODパラメータが提供されます。できるだけデフォルトのオプション(AUTOMATIC)を使用することをお薦めします(このオプションによって、データ・ポンプは最も効果的なメソッドを自動的に選択できるようになります)。

制限事項

  • NETWORK_LINKパラメータも指定した場合、ACCESS_METHODパラメータは無視されます。

  • Data Pump ImportのACCESS_METHODパラメータは、トランスポータブル表領域のジョブに対して有効ではありません。

> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp ACCESS_METHOD=CONVENTIONAL 

ATTACH

デフォルト: ユーザーのスキーマで現在実行されているジョブ(実行中のジョブが1つのみの場合)

用途

クライアント・セッションを既存のインポート・ジョブに接続し、自動的に対話方式コマンド・モードにします。

構文および説明

ATTACH [=[schema_name.]job_name]

schema_nameは、接続しているスキーマが、自分のスキーマにない場合に指定します。このパラメータを指定するには、DATAPUMP_IMP_FULL_DATABASEロールが必要です。

job_nameは、スキーマに対応する実行中ジョブが1つのみで、そのジョブがアクティブな場合、指定する必要はありません。停止しているジョブに接続する場合は、このジョブ名を指定する必要があります。DBA_DATAPUMP_JOBSビューまたはUSER_DATAPUMP_JOBSビューを問い合せて、データ・ポンプ・ジョブ名の一覧を表示できます。

ジョブに接続している場合、インポート・ユーティリティでは、ジョブの説明が表示され、次にインポート・プロンプトが表示されます。

制限事項

  • ATTACHパラメータを指定する場合、コマンドラインで他に指定できるデータ・ポンプ・パラメータは、ENCRYPTION_PASSWORDのみです。

  • 接続するジョブが最初に暗号化パスワードを使用して起動している場合、そのジョブへの接続時に、コマンドライン上のENCRYPTION_PASSWORDパラメータを再入力してそのパスワードを再指定する必要があります。唯一の例外は、ジョブが最初にENCRYPTION=ENCRYPTED_COLUMNS_ONLYパラメータを使用して開始されている場合です。この場合、ジョブへの接続時に暗号化パスワードは必要ありません。

  • そのジョブが実行中でなければ、別のスキーマのジョブに接続することはできません。

  • ジョブのダンプ・ファイル・セットまたはマスター表が削除されている場合、接続操作は失敗します。

  • マスター表を変更すると、それがどのような変更であっても、予期しない結果になる場合があります。

次に、ATTACHパラメータの使用例を示します。

> impdp hr ATTACH=import_job

この例では、import_jobというジョブが、hrスキーマに存在するとします。

CLUSTER

デフォルト: YES

用途

データ・ポンプでOracle Real Application Clusters(Oracle RAC)リソースを使用できるかどうかと、ワーカーを他のOracle RACインスタンス上で開始できるかどうかを決定します。

構文および説明

CLUSTER=[YES | NO]

データ・ポンプ・インポートで、ジョブが開始されたインスタンスのみを使用し、Oracle Database 11g リリース2(11.2)より前の動作と同じにするには、CLUSTER=NOを指定します。

特定の既存サービスを指定し、そのサービスに定義されたインスタンスでのみ実行されるようにワーカー・プロセスを制限するには、SERVICE_NAMEパラメータとCLUSTER=YESパラメータとともに使用します。

CLUSTERパラメータを使用すると、インポート・ジョブをOracle RACインスタンス全体に分散させるための追加のオーバーヘッドが発生するため、パフォーマンスに影響する場合があります。ジョブが小さいときは、CLUSTER=NOを指定して、ジョブが開始されたインスタンス上のみでジョブを実行した方がよい場合もあります。CLUSTERパラメータを使用してジョブのパフォーマンスが最もよくなるのは、ジョブのデータ量が多い場合です。

> impdp hr DIRECTORY=dpump_dir1 SCHEMAS=hr CLUSTER=NO PARALLEL=3 NETWORK_LINK=dbs1

この例では、hrスキーマのスキーマ・モード・インポートを実行します。CLUSTER=NOが使用されているため、ジョブでは起動時のインスタンスのみが使用されます。最大3つまでのパラレル処理を使用できます。dbs1NETWORK_LINK値は、データのインポート元であるソース・データベース名に置き換えます。(これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。)

NETWORK_LINKパラメータは、単にこの例の一部として使用されています。CLUSTERパラメータの使用時は必須ではありません。

CONTENT

デフォルト: ALL

用途

インポート操作でロードする内容をフィルタ処理できます。

構文および説明

CONTENT=[ALL | DATA_ONLY | METADATA_ONLY]
  • ALLを指定すると、ソースに含まれているすべてのデータおよびメタデータがロードされます。これがデフォルトです。

  • DATA_ONLYを指定すると、表の行データのみが既存の表にロードされます。データベース・オブジェクトは作成されません。

  • METADATA_ONLYを指定すると、データベース・オブジェクト定義のみがロードされ、表の行データはロードされません。CONTENT=METADATA_ONLYを指定した場合、ダンプ・ファイルからインポートされる任意の索引または表の統計は、インポート操作の完了後にロックされることに注意してください。

制限事項

  • CONTENT=METADATA_ONLYパラメータおよび値は、TRANSPORT_TABLESPACES(トランスポータブル表領域モード)パラメータまたはQUERYパラメータと組み合せて使用することはできません。

  • CONTENT=ALLおよびCONTENT=DATA_ONLYパラメータおよび値は、SQLFILEパラメータと組み合せて使用することはできません。

次に、CONTENTパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp CONTENT=METADATA_ONLY

このコマンドは、expfull.dmpダンプ・ファイルのメタデータのみをロードする全体インポートを実行します。全体インポートが実行されるのは、インポート・モードを指定しないファイル・ベースのインポートでは、全体インポートがデフォルトであるためです。

DATA_OPTIONS

デフォルト: デフォルト値は設定されていません。このパラメータが使用されていない場合、このパラメータが提供する特別なデータ処理オプションは無効になります。

用途

DATA_OPTIONSパラメータは、インポート操作時に特定のタイプのデータをどのように処理するかを指定します。

構文および説明

DATA_OPTIONS = [DISABLE_APPEND_HINT | SKIP_CONSTRAINT_ERRORS]
  • DISABLE_APPEND_HINT: インポート操作で、データ・オブジェクトのロード時にAPPENDヒントを使用しないことを指定します。ロードするデータ・オブジェクトの一部がすでにデータベースに存在し、1つ以上のデータ・オブジェクトに対して他のアプリケーションから同時にアクセスされる可能性がある場合は、APPENDヒントを無効にしたほうが効果的な場合があります。

    DISABLE_APPEND_HINTを設定しない場合は、デフォルトの動作によりデータ・オブジェクトのロード中にAPPENDヒントが使用されます。

  • SKIP_CONSTRAINT_ERRORS: データ・オブジェクト(表、パーティションまたはサブパーティション)をロードする際の、非遅延制約違反の処理方法に適用されます。遅延制約違反が発生しても、ロードへの影響はありません。遅延制約違反は常に、ロード全体のロール・バックの原因となります。

    SKIP_CONSTRAINT_ERRORSオプションでは、非遅延の制約違反が発生した場合もインポート操作を続行することを指定します。非遅延の制約違反の原因となっているすべての行はログに記録されますが、違反が発生しているデータ・オブジェクトのロードは停止されません。

    SKIP_CONSTRAINT_ERRORSが設定されていない場合のデフォルトの動作では、非遅延の制約違反が発生しているデータ・オブジェクトのロード全体がロール・バックされます。

制限事項

  • DISABLE_APPEND_HINTを使用すると、データ・オブジェクトのロードにかかる時間が長くなる場合があります。

  • SKIP_CONSTRAINT_ERRORSが使用され、データ・オブジェクトがロード時にそのデータ・オブジェクトに対して定義された一意の索引または制約を持つ場合、そのデータ・オブジェクトのロードにAPPENDヒントは使用されません。したがって、SKIP_CONSTRAINT_ERRORSオプションを使用した場合、このようなデータ・オブジェクトのロードにはより時間がかかります。

  • データ・オブジェクトが外部表によるアクセス方法を使用せずにロードされている場合、SKIP_CONSTRAINT_ERRORSは、たとえ指定されていても使用されません。

この例では、SKIP_CONSTRAINT_ERRORSが有効化されているデータのみの表モード・インポートを示します。

> impdp hr TABLES=employees CONTENT=DATA_ONLY 
DUMPFILE=dpump_dir1:table.dmp DATA_OPTIONS=skip_constraint_errors

このインポート操作中に非遅延の制約違反が発生した場合、それはログに記録されますが、インポートは完了するまで続行されます。

DIRECTORY

デフォルト: DATA_PUMP_DIR

用途

インポート・ジョブがダンプ・ファイル・セットを検出し、ログ・ファイルおよびSQLファイルが作成されるデフォルトの位置を指定します。

構文および説明

DIRECTORY=directory_object

directory_objectは、データベースのディレクトリ・オブジェクトの名前です(実際のディレクトリファイル・パスではありません)。インストール時に、特権ユーザーにDATA_PUMP_DIRという名前のデフォルトのディレクトリ・オブジェクトへのアクセス権が付与されます。デフォルトのDATA_PUMP_DIRディレクトリ・オブジェクトにアクセス可能なユーザーは、DIRECTORYパラメータを使用する必要はまったくありません。

DUMPFILEパラメータ、LOGFILEパラメータまたはSQLFILEパラメータで指定したディレクトリ・オブジェクトは、DIRECTORYパラメータに指定したディレクトリ・オブジェクトよりも優先されます。ダンプ・ファイル・セット用に使用するディレクトリに対する読取り権限と、ログ・ファイルおよびSQLファイルの作成に使用するディレクトリに対する書込み権限が必要です。

次に、DIRECTORYパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp 
LOGFILE=dpump_dir2:expfull.log

このコマンドによって、インポート・ジョブが、dpump_dir1ディレクトリ・オブジェクトに示されたディレクトリのexpfull.dmpダンプ・ファイルを検索します。LOGFILEパラメータに指定したdpump_dir2ディレクトリ・オブジェクトは、DIRECTORYパラメータよりも優先されるため、ログ・ファイルは、dpump_dir2に書き込まれます。


参照:


DUMPFILE

デフォルト: expdat.dmp

用途

Exportによって作成されたダンプ・ファイル・セットの名前を指定します。オプションで、これらのディレクトリ・オブジェクトを指定します

構文および説明

DUMPFILE=[directory_object:]file_name [, ...]

DIRECTORYパラメータで指定されている場合、directory_objectはオプションです。ここで値を指定する場合は、すでに存在しアクセス権があるディレクトリ・オブジェクトを指定します。DUMPFILEパラメータの一部に指定されるデータベース・ディレクトリ・オブジェクトは、DIRECTORYパラメータで指定された値よりも優先されます。

file_nameには、ダンプ・ファイル・セット内のファイルの名前を指定します。ファイル名には、置換変数%Uを含むテンプレートを指定することもできます。%Uを使用した場合、インポート・ユーティリティは、テンプレートと一致する各ファイルを一致するファイルが検出されなくなるまで調べ、ダンプ・ファイル・セットの一部となるすべてのファイルの位置を特定します。%Uは、01から始まる2桁の整数に変換されます。

DUMPFILEパラメータでのファイル指定にセット全体が含まれている場合は、インポート・ユーティリティでセット全体の位置を特定するための十分な情報がファイルに含まれます。ファイルの名前、位置または順序は、エクスポート時と同じである必要はありません。

次に、インポートのDUMPFILEパラメータの使用例を示します。この例では、ExportのDUMPFILEパラメータで示した例を実行して、ダンプ・ファイルを作成できます。詳細は、「DUMPFILE」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=dpump_dir2:exp1.dmp, exp2%U.dmp

exp1.dmpダンプ・ファイルに、ディレクトリ・オブジェクト(dpump_dir2)が指定されているため、インポート・ジョブは、そのファイルを検索します。また、dpump_dir1にある、exp2nn.dmpの形式のダンプ・ファイルも検索します。ログ・ファイルは、dpump_dir1に書き込まれます。

ENCRYPTION_PASSWORD

デフォルト: デフォルト値は設定されていません。ユーザーが値を指定します。

用途

ダンプ・ファイル・セット内の暗号化列のデータにアクセスするためのパスワードを指定します。これにより、暗号化されたダンプ・ファイル・セットへの不正なアクセスを防ぎます。

構文および説明

ENCRYPTION_PASSWORD = password

このパラメータは、エクスポート操作で暗号化パスワードが指定された場合に、インポート操作で必要になります。このパスワードは、エクスポート操作で指定されたものと同じものを指定する必要があります。

制限事項

  • このパラメータは、Oracle Database 11gのEnterprise Editionでのみ有効です。

  • データ・ポンプの暗号化機能を使用するには、Oracle Advanced Securityオプションが有効である必要があります。Oracle Advanced Securityオプションのライセンス要件の詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。

  • ダンプ・ファイル・セットが暗号化の透過モードを使用して作成されている場合、ENCRYPTION_PASSWORDパラメータは無効です。

  • ENCRYPTION_PASSWORDパラメータは、ネットワーク・インポート・ジョブには無効です。

  • すべての列に対する暗号化属性は、エクスポートされた表の定義とターゲット表で一致している必要があります。たとえば、EMP表にEMPNOという列があるとします。次のいずれの場合も、ソース表のEMP列の暗号化属性が、ターゲット表のEMP列の暗号化属性と一致していないためエラーになります。

    • EMPNO列を暗号化してEMP表をエクスポートし、表をインポートする前にEMPNO列から暗号化属性を削除する。

    • EMPNO列を暗号化せずにEMP表をエクスポートし、表をインポートする前にEMPNO列の暗号化を有効にする。

次の例では、暗号化パスワード123456を指定する必要があります。これは、ダンプ・ファイルdpcd2be1.dmpの作成時に、そのパスワードが指定されたためです(「ENCRYPTION_PASSWORD」を参照)。

> impdp hr TABLES=employee_s_encrypt DIRECTORY=dpump_dir
  DUMPFILE=dpcd2be1.dmp ENCRYPTION_PASSWORD=123456

インポート操作時、エクスポート操作時に暗号化されたemployee_s_encrypt表のすべての列は、複合化されてからインポートされます。

ESTIMATE

デフォルト: BLOCKS

用途

このパラメータによって、ネットワーク・インポート操作のソース・システムで、データの生成量が見積もられます。

構文および説明

ESTIMATE=[BLOCKS | STATISTICS]

ESTIMATEパラメータでは、次の値を選択できます。

  • BLOCKS: 見積りは、ソース・オブジェクトで使用されるデータベース・ブロックの数に、適切なブロック・サイズを掛けて計算されます。

  • STATISTICS: 見積りは、表別の統計を使用して計算されます。この方法による見積りをできるかぎり正確にするには、すべての表を新しく分析しておく必要があります。(表の分析は、SQL ANALYZE文またはDBMS_STATS PL/SQLパッケージのいずれかで実行可能です。)

生成される見積りは、インポート・ジョブの完了率の確認に使用されます。

制限事項

  • インポートのESTIMATEパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。

  • インポート・ソースがダンプ・ファイル・セットの場合、ロードされるデータの量がすでにわかっているため、完了率は自動的に計算されます。

  • QUERYまたはREMAP_DATAパラメータのいずれかを使用している場合は、見積りが不正確になることがあります。

次の例では、source_database_linkにソース・データベースに対する有効なリンク名を指定します。

> impdp hr TABLES=job_history NETWORK_LINK=source_database_link
  DIRECTORY=dpump_dir1 ESTIMATE=STATISTICS 

hrスキーマのjob_history表が、ソース・データベースからインポートされます。デフォルトでログ・ファイルが作成され、dpump_dir1ディレクトリ・オブジェクトで示されたディレクトリに書き込まれます。ジョブが開始すると、表の統計に基づいて、そのジョブの見積りが計算されます。

EXCLUDE

デフォルト: デフォルト値は設定されていません。

用途

インポート・ジョブから除外するオブジェクトおよびオブジェクト型を指定して、インポートの対象となるメタデータをフィルタ処理できます

構文および説明

EXCLUDE=object_type[:name_clause] [, ...]

object_typeは除外するオブジェクトのタイプを指定します。DATABASE_EXPORT_OBJECTS(全体モードの場合)、SCHEMA_EXPORT_OBJECTS(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS(表および表領域モードの場合)ビューを問い合せて、object_typeの有効な値の一覧を表示できます。OBJECT_PATH列にリストされる値が有効なオブジェクト・タイプです。

指定したインポート・モードでは、EXCLUDE文に指定されたオブジェクト型を除き、ソースに含まれるすべてのオブジェクト型およびその依存オブジェクトが含まれます。オブジェクトが除外されると、そのオブジェクトのすべての依存オブジェクトも除外されます。たとえば、表を除外すると、その表のすべての索引およびトリガーも除外されます。

name_clauseは、オプションです。これを使用すると、あるオブジェクト型のうち、特定のオブジェクトをファイングレイン選択できます。その型のオブジェクト名に対するフィルタとして使用されるSQL式です。SQL演算子および指定した型のオブジェクト名の比較対象となる値で構成されています。name_clauseは、名前付きのインスタンスを持つオブジェクト型にのみ適用されます(たとえば、TABLEおよびVIEWには適用されますが、GRANTには適用されません)。それは、コロンでオブジェクト型と区切り、二重引用符(一重引用符は名前文字列を区切るために必要なため)で囲む必要があります。たとえば、EXCLUDE=INDEX:"LIKE 'DEPT%'"と設定した場合、deptで始まる名前を持つすべての索引を除外できます。

name_clauseに指定する名前は、データベース内の既存のオブジェクトに、大文字と小文字も含めて完全に一致させる必要があります。たとえば、指定するname_clauseEMPLOYEESという表に対するものだった場合は、すべてが大文字のEMPLOYEESという表が存在する必要があります。name_clauseに対してEmployeesemployeesなどを指定した場合、表は検出されません。

2つ以上のEXCLUDE文を指定できます。

オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。

次の項で説明するとおり、特定のオブジェクト(特にCONSTRAINTGRANTおよびUSER)を除外対象として指定した場合の効果を認識しておく必要があります。

制約の除外

次の制約は除外できません。

  • NOT NULL制約。

  • 表の作成とロードを正常に行うために必要な制約。たとえば、索引構成表の主キー制約、REF列を持つ表のREF SCOPEおよびWITH ROWID制約など。

次に、EXCLUDE文の例およびその解釈を示します。

  • EXCLUDE=CONSTRAINTは、NOT NULL制約および表の正常な作成およびロードに必要な制約を除き、すべての非参照制約を除外します。

  • EXCLUDE=REF_CONSTRAINTは、参照整合性(外部キー)制約を除外します。

権限とユーザーの除外

EXCLUDE=GRANTを指定すると、すべてのオブジェクト型に対するオブジェクト権限およびシステム権限が除外されます。

EXCLUDE=USERを指定すると、ユーザーの定義のみが除外され、そのユーザーのスキーマ内のオブジェクトは除外されません。

特定のユーザーとそのユーザーのすべてのオブジェクトを除外するには、次のコマンドを指定します(hrは除外するユーザーのスキーマ名です)。

impdp FULL=YES DUMPFILE=expfull.dmp EXCLUDE=SCHEMA:"='HR'"

ここで、インポート・モードがFULLに指定されていることに注意してください。モードを指定しなかった場合は、デフォルト・モードのSCHEMASが使用されます。その場合は、スキーマをインポートすると同時に除外するようコマンドが指示することになるため、エラーが発生します。

EXCLUDE=USER:"= 'HR'"などの文を使用してユーザーを除外しようとすると、DDL文CREATE USER hr のみが除外され、期待した結果が得られない場合があります。

制限事項

  • EXCLUDEおよびINCLUDEは、相互に排他的なパラメータです。

DBAまたはDATAPUMP_IMP_FULL_DATABASEロールを持つ他のユーザーが、パラメータ・ファイルexclude.parで次のように実行するとします。(例を試す場合は、このファイルを作成する必要があります。)

EXCLUDE=FUNCTION
EXCLUDE=PROCEDURE
EXCLUDE=PACKAGE
EXCLUDE=INDEX:"LIKE 'EMP%' "

次のコマンドを発行します。このコマンドでは、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp system DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp PARFILE=exclude.par

expfull.dmpダンプ・ファイルから、empで始まる名前を持つファンクション、プロシージャ、パッケージおよび索引を除くすべてのデータがロードされます。


参照:

EXCLUDEパラメータを使用した場合の効果の詳細は、「インポート操作中のフィルタ処理」を参照してください。

FLASHBACK_SCN

デフォルト: デフォルト値は設定されていません。

用途

インポートで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。

構文および説明

FLASHBACK_SCN=scn_number

インポート操作は、指定したscn_numberまでの一貫性のあるデータを使用して実行されます。


注意:

ロジカル・スタンバイ・システムでは、ロジカル・スタンバイによってSCNが選択されるため、FLASHBACK_SCNパラメータは無視されます。ロジカル・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。

制限事項

  • FLASHBACK_SCNパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。

  • FLASHBACK_SCNパラメータは、Oracle Databaseのフラッシュバック問合せ機能にのみ関係します。フラッシュバック・データベース、フラッシュバック削除およびフラッシュバック・データ・アーカイブには適用できません。

  • FLASHBACK_SCNおよびFLASHBACK_TIMEは、相互に排他的なパラメータです。

次に、FLASHBACK_SCNパラメータの使用例を示します。

> impdp hr DIRECTORY=dpump_dir1 FLASHBACK_SCN=123456 
NETWORK_LINK=source_database_link

この例のsource_database_linkには、データのインポート元であるソース・データベース名を指定します。

FLASHBACK_TIME

デフォルト: デフォルト値は設定されていません。

用途

インポートで使用されるシステム変更番号(SCN)を指定して、フラッシュバック・ユーティリティを使用可能にします。

構文および説明

FLASHBACK_TIME="TO_TIMESTAMP()"

指定された時刻に最も近いSCNを検出し、このSCNを使用してフラッシュバック・ユーティリティを使用可能にします。インポート操作は、このSCNまでの一貫性のあるデータを使用して実行されます。TO_TIMESTAMPの値は引用符で囲まれるため、パラメータ・ファイルに記述することをお薦めします。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。


注意:

ロジカル・スタンバイ・システムでは、ロジカル・スタンバイによってSCNが選択されるため、FLASHBACK_TIMEパラメータは無視されます。ロジカル・スタンバイ・データベースの詳細は、『Oracle Data Guard概要および管理』を参照してください。

制限事項

  • このパラメータは、NETWORK_LINKパラメータも指定されている場合にのみ有効です。

  • FLASHBACK_TIMEパラメータは、Oracle Databaseのフラッシュバック問合せ機能にのみ関係します。フラッシュバック・データベース、フラッシュバック削除およびフラッシュバック・データ・アーカイブには適用できません。

  • FLASHBACK_TIMEおよびFLASHBACK_SCNは、相互に排他的なパラメータです。

DBMS_FLASHBACK.ENABLE_AT_TIMEプロシージャで使用可能な形式で時刻を指定できます。たとえば、次の内容のパラメータ・ファイルflashback_imp.parを作成したとします。

FLASHBACK_TIME="TO_TIMESTAMP('25-08-2008 14:35:00', 'DD-MM-YYYY HH24:MI:SS')"

次のコマンドを発行します。

> impdp hr DIRECTORY=dpump_dir1 PARFILE=flashback_imp.par NETWORK_LINK=source_database_link

インポート操作は、指定した時間に最も近いSCNと整合性のあるデータで実行されます。


参照:

フラッシュバックの使用方法の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。

FULL

デフォルト: YES

用途

全データベース・インポートの実行を指定します。

構文および説明

FULL=YES

FULL=YESの値は、ソース(ダンプ・ファイル・セットまたは他のデータベース)からのすべてのデータおよびメタデータがインポートされることを示します。

このモードを使用したインポート対象を、フィルタ処理によってより詳細に制限できます(詳細は、「インポート操作中のフィルタ処理」を参照してください)。

NETWORK_LINKパラメータが使用され、インポート・ジョブを実行するUSERIDがターゲット・データベースのDATAPUMP_IMP_FULL_DATABASEロールを持っている場合、そのユーザーは、ソース・データベースのDATAPUMP_EXP_FULL_DATABASEロールも持っている必要があります。

ファイルのインポート権限が付与されていないユーザーの場合は、自分のスキーマにマップするスキーマのみインポートされます。

FULLは、ファイル・ベース・インポートを実行する際のデフォルト・モードです。

次に、FULLパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DUMPFILE=dpump_dir1:expfull.dmp FULL=YES 
LOGFILE=dpump_dir2:full_imp.log

この例では、expfull.dmpダンプ・ファイルのすべての内容をインポートします。ここでは、DIRECTORYパラメータは指定されていません。そのため、DUMPFILEパラメータおよびLOGFILEパラメータの両方にディレクトリ・オブジェクトを指定する必要があります。例に示すとおり、ディレクトリ・オブジェクトは、別のものを指定することができます。

HELP

デフォルト: NO

用途

インポート・ユーティリティのオンライン・ヘルプを表示します。

構文および説明

HELP=YES

HELP=YESが指定されている場合は、インポート・ユーティリティのすべてのコマンドライン・パラメータと対話方式コマンドの要約が表示されます。

> impdp HELP = YES

この例では、すべてのインポート・パラメータおよびコマンドの簡単な説明が表示されます。

INCLUDE

デフォルト: デフォルト値は設定されていません。

用途

現行のインポート・モードにオブジェクトとオブジェクト型を指定して、インポート対象のメタデータをフィルタ処理できます。

構文および説明

INCLUDE = object_type[:name_clause] [, ...]

object_typeは含めるオブジェクトのタイプを指定します。DATABASE_EXPORT_OBJECTS(全体モードの場合)、SCHEMA_EXPORT_OBJECTS(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS(表および表領域モードの場合)ビューを問い合せて、object_typeの有効な値の一覧を表示できます。OBJECT_PATH列にリストされる値が有効なオブジェクト・タイプです。

INCLUDE文に明示的に指定した、ソース内のオブジェクト型とその依存オブジェクトのみがインポートされます。

name_clauseは、オプションです。これを使用すると、あるオブジェクト型のうち、特定のオブジェクトをファイングレイン選択できます。その型のオブジェクト名に対するフィルタとして使用されるSQL式です。SQL演算子および指定した型のオブジェクト名の比較対象となる値で構成されています。このname_clauseは、名前付きのインスタンスを持つオブジェクト型にのみ適用されます(たとえば、TABLEには適用されますが、GRANTには適用されません)。それは、コロンでオブジェクト型と区切り、二重引用符(一重引用符は名前文字列を区切るために必要なため)で囲む必要があります。

name_clauseに指定する名前は、データベース内の既存のオブジェクトに、大文字と小文字も含めて完全に一致させる必要があります。たとえば、指定するname_clauseEMPLOYEESという表に対するものだった場合は、すべてが大文字のEMPLOYEESという表が存在する必要があります。name_clauseに対してEmployeesemployeesなどを指定した場合、表は検出されません。

2つ以上のINCLUDE文を指定できます。

オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。

DATABASE_EXPORT_OBJECTS(全体モードの場合)、SCHEMA_EXPORT_OBJECTS(スキーマ・モードの場合)、TABLE_EXPORT_OBJECTS(表および表領域モードの場合)ビューを問い合せて、INCLUDEパラメータで使用する有効なパスの一覧を表示できます。

制限事項

  • INCLUDEおよびEXCLUDEは、相互に排他的なパラメータです。

DBAまたはDATAPUMP_IMP_FULL_DATABASEロールを持つ他のユーザーが、パラメータ・ファイルimp_include.parで次のように実行するとします。

INCLUDE=FUNCTION
INCLUDE=PROCEDURE
INCLUDE=PACKAGE
INCLUDE=INDEX:"LIKE 'EMP%' "

次のコマンドを発行します。

> impdp system SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp 
PARFILE=imp_include.par

この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

このインポートでは、hrスキーマのファンクション、プロシージャ、パッケージ、および名前がEMPで始まる索引のみロードされます。これは特権モードのインポート(ユーザーにDATAPUMP_IMP_FULL_DATABASEロールがある)ですが、USERオブジェクト型がINCLUDE文に指定されていないため、スキーマ定義はインポートされません。

JOB_NAME

デフォルト: SYS_<IMPORTまたはSQLFILE>_<mode>_NNという書式のシステム生成による名前

用途

ジョブ名は、ジョブへの接続にATTACHパラメータを使用したり、DBA_DATAPUMP_JOBSまたはUSER_DATAPUMP_JOBSビューを使用してジョブを指定する場合など、後続処理でインポート・ジョブを指定するために使用されます。

構文および説明

JOB_NAME=jobname_string

jobname_stringには、このインポート・ジョブの名前を30バイト以内で指定します。これらのバイトは印字可能文字と空白を表します。空白を含む場合は、一重引用符で囲みます(たとえば、'Thursday Import'とします)。ジョブ名は、インポート操作を実行しているユーザーのスキーマによって暗黙的に修飾されます。ジョブ名は、マスター表の名前として使用されます(マスター表はエクスポート・ジョブを制御します)。

デフォルトのジョブ名はSYS_IMPORT_mode_NNまたはSYS_SQLFILE_mode_NNという形式で、システムによって生成されます。NNは、01から始めて増加する2桁の整数です。デフォルト名は、'SYS_IMPORT_TABLESPACE_02'などです。

次に、JOB_NAMEパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp JOB_NAME=impjob01

KEEP_MASTER

デフォルト: NO

用途

正常に完了したデータ・ポンプ・ジョブの最後に、マスター表を削除するか、または保持するかを示します。ジョブが正常に完了しなかった場合、マスター表は自動的に保持されます。

構文および説明

KEEP_MASTER=[YES | NO]

制限事項

  • なし

> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp KEEP_MASTER=YES

LOGFILE

デフォルト: import.log

用途

インポート・ジョブのログ・ファイルの名前を指定します。オプションで、そのログ・ファイルのディレクトリ・オブジェクトを指定します。

構文および説明

LOGFILE=[directory_object:]file_name

directory_objectには、DBAによって作成済で、自分にアクセス権があるディレクトリ・オブジェクトを指定する必要があります。この指定は、DIRECTORYパラメータに指定されたディレクトリ・オブジェクトよりも優先されます。デフォルトでは、DIRECTORYパラメータに指定されているディレクトリ・オブジェクトによって参照されるディレクトリ内に、import.logが作成されます。

file_nameに指定したファイルがすでに存在する場合、そのファイルは上書きされます。

処理中の作業、完了した作業および発生したエラーに関するすべてのメッセージがログ・ファイルに書き込まれます。(ジョブのリアルタイムの状態を把握するには、対話方式モードでSTATUSコマンドを使用します。)

NOLOGFILEパラメータが指定されていないかぎり、常に、ログ・ファイルは作成されます。ダンプ・ファイル・セットと同様に、ログ・ファイルの基準となるのは、クライアントではなく、サーバーです。


注意:

データ・ポンプ・インポート・ユーティリティは、データベースのキャラクタ・セットを使用してログ・ファイルに書込みを行います。クライアントのNLS_LANG環境にデータベースのキャラクタ・セットと異なるキャラクタ・セットを設定した場合は、ログ・ファイル内の表の名前が、クライアントの出力画面に表示される名前と異なることがあります。

制限事項

  • Oracle Automatic Storage Management (Oracle ASM)を使用してデータ・ポンプ・インポートを実行する場合、LOGFILEパラメータは、Oracle ASMの+表記法を使用せずにディレクトリ・オブジェクトを指定する必要があります。つまり、ログ・ファイルはディスク・ファイルに書き込まれ、Oracle ASMの記憶域には書き込まれません。かわりに、NOLOGFILE=YESを指定することもできます。ただし、この場合はログ・ファイルの書込みは行われません。

次に、LOGFILEパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr SCHEMAS=HR DIRECTORY=dpump_dir2 LOGFILE=imp.log
 DUMPFILE=dpump_dir1:expfull.dmp

LOGFILEパラメータにはディレクトリ・オブジェクトが指定されていないため、ログ・ファイルは、DIRECTORYパラメータに指定したディレクトリ・オブジェクトに書き込まれます。


参照:


MASTER_ONLY

デフォルト: NO

用途

マスター表の内容を確認できるように、マスター表のみをインポートしてジョブを停止するかどうかを示します。

構文および説明

MASTER_ONLY=[YES | NO]

制限事項

  • NETWORK_LINKパラメータも指定する場合、MASTER_ONLY=YESはサポートされません。

> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp MASTER_ONLY=YES

METRICS

デフォルト: NO

用途

ジョブに関する詳細情報をデータ・ポンプ・ログ・ファイルに記録するかどうかを示します。

構文および説明

METRICS=[YES | NO]

METRICS=YESを使用すると、オブジェクト数および経過時間がデータ・ポンプ・ログ・ファイルに記録されます。

制限事項

  • なし

> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp METRICS=YES

NETWORK_LINK

デフォルト: デフォルト値は設定されていません。

用途

有効なデータベース・リンクによって指定される(ソース)データベースからのインポートを使用可能にします。ソース・データベース・インスタンスのデータは、接続されたデータベース・インスタンスに直接書き込まれます。

構文および説明

NETWORK_LINK=source_database_link

NETWORK_LINKパラメータは、データベース・リンクを使用してインポートを開始します。つまり、impdpクライアントの接続先となるシステムから、source_database_linkで指定されたソース・データベースに接続し、そこからデータを取り出して、接続されたインスタンスのデータベースに直接書き込みます。ダンプ・ファイルは含まれません。

source_database_linkには、使用可能なデータベースへのデータベース・リンク名を指定する必要があります。対象インスタンスのデータベースにデータベース・リンクが指定されていない場合、ユーザーまたはDBAが、SQL CREATE DATABASE LINK文を使用してデータベース・リンクを作成する必要があります。

トランスポータブル・メソッドを使用してネットワーク・インポートを実行する場合は、インポートを開始する前に、ソース・データ・ファイルをターゲット・データベースにコピーする必要があります。

ソース・データベースが読取り専用の場合、接続されたユーザーは、デフォルト一時表領域として割り当てられたローカル管理一時表領域をソース・データベース上に持つ必要があります。それ以外の場合、ジョブは失敗します。

このパラメータは、FLASHBACK_SCNFLASHBACK_TIMEESTIMATETRANSPORT_TABLESPACESまたはTRANSPORTABLEのいずれかのパラメータを指定する場合に必要です。


注意:

暗号化されていないネットワーク・リンクを介してインポート操作が行われる場合、すべてのデータはクリア・テキストとしてインポートされます。これは、データがデータベースで暗号化されている場合でも同様です。ネットワーク・セキュリティの詳細は、『Oracle Database Advanced Security管理者ガイド』を参照してください。


参照:

  • データベース・リンクの詳細は、Oracle Database管理者ガイドを参照してください。

  • CREATE DATABASE LINK文の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • ローカル管理表領域の詳細は、『Oracle Database管理者ガイド』を参照してください。


制限事項

  • ContentTypeセットがあるSecureFiles、または現在Oracle Database File System Linksを介してSecureFilesセグメントの外に格納されているSecureFilesが表に含まれている場合、インポートのNETWORK_LINKパラメータはサポートされません。

  • ネットワーク・インポートは進化した型の使用をサポートしません。

  • ネットワーク・インポートはLONG列をサポートしません。

  • データ・ポンプ操作がネットワーク・リンクを介して行われる場合、ソース・データベースとターゲット・データベースのバージョンの差違が1バージョン以下である必要があります。たとえば、1つのデータベースがOracle Database 11gの場合、他のデータベースは11gまたは10gのいずれかである必要があります。データ・ポンプがチェックするのはメジャー・バージョン番号のみ(10g、11gなど)で、具体的なリリース番号(10.1、10.2、11.1、11.2など)ではありません。

  • インポート・ジョブを実行するUSERIDがターゲット・データベースのDATAPUMP_IMP_FULL_DATABASEロールを持っている場合、そのユーザーは、ソース・データベースのDATAPUMP_EXP_FULL_DATABASEロールも持っている必要があります。

  • データ・ポンプ・インポートでサポートされているデータベース・リンクのタイプは、パブリック、固定ユーザーおよび接続ユーザーのみです。現在のユーザーのデータベース・リンクは、サポートされていません。

  • ネットワーク・モード・インポートではパラレル問合せ(PQ)スレーブは使用されません。「ネットワーク・モード・インポートにおけるPARALLELの使用」を参照してください。

次の例では、source_database_linkを有効なデータベース・リンクの名前に置き換えます。

> impdp hr TABLES=employees DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link EXCLUDE=CONSTRAINT

この例では、ソース・データベースからemployees 表(制約を除く)がインポートされます。ログ・ファイルは、DIRECTORYパラメータに指定したdpump_dir1に書き込まれます。

NOLOGFILE

デフォルト: NO

用途

デフォルトでログ・ファイルを作成するかどうかを指定します。

構文および説明

NOLOGFILE=[YES | NO]

NOLOGFILE=YESを指定すると、ログ・ファイルは作成されません。ただし、進捗とエラーに関する情報が、接続されているいずれかのクライアント(オリジナルのエクスポート操作を開始したクライアントを含む)の標準出力デバイスに書き込まれます。実行中のジョブに接続されているクライアントが存在しないときにNOLOGFILE=YESを指定すると、重要な進捗情報およびエラー情報が失われる危険性があります。

次に、NOLOGFILEパラメータの使用例を示します。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp NOLOGFILE=YES

このコマンドを実行すると、expfull.dmpダンプ・ファイルの全体インポート・モード(ファイル・ベース・インポートのデフォルト)が実行されます。NOLOGFILEYESが設定されているため、ログ・ファイルは書き込まれません。

PARALLEL

デフォルト: 1

用途

インポート・ジョブのために動作するアクティブな実行プロセスの最大数を指定します。

構文および説明

PARALLEL=integer

integerに指定する値によって、インポート・ジョブのために動作するアクティブな実行プロセスの最大数が指定されます。この実行セットはワーカー・プロセスおよびパラレルI/Oサーバーの処理の組合せで構成されています。パラレルI/O操作でパラレル実行コーディネータとして動作するマスター制御プロセス、アイドル状態のワーカーおよびワーカー・プロセスは、この合計数には加算されません。このパラメータを使用して、リソース消費と経過時間のバランスをとることができます。

インポートのソースがファイルで構成されるダンプ・ファイル・セットの場合、同じファイルから複数のプロセスが読取り可能ですが、パフォーマンスは、I/O競合によって制限されます。

ジョブの実行中にPARALLELの値を増減するには、対話方式コマンド・モードを使用します。

並列度は、ユーザー・データおよびパッケージ本体のロード、索引の作成に使用します。

ネットワーク・モード・インポートにおけるPARALLELの使用

ネットワーク・モード・インポート中、PARALLELパラメータによって、ジョブに割り当てることができるワーカー・プロセスの最大数が定義されます。ネットワーク・モード・インポート中のPARALLELパラメータの影響を理解するには、データ・ポンプによって定義されるtable_dataオブジェクトの概念を理解することが重要です。データ・ポンプでは、データを移動するとき、次の項目を個々のtable_dataオブジェクトとみなします。

  • 完全な表(パーティションまたはサブパーティションされていないもの)

  • パーティション(表がパーティション化されているがサブパーティション化されていない場合)

  • サブパーティション(表がサブパーティション化されている場合)

次に例を示します。

  • 非パーティション表scott.non_part_tableには次の1つのtable_dataオブジェクトがあります。

    scott.non_part_table

  • パーティション表scott.part_table(パーティションp1とパーティションp2を持つ)には次の2つのtable_dataオブジェクトがあります。

    scott.part_table:p1

    scott.part_table:p2

  • サブパーティション表scott.sub_part_table(パーティションp1p2、およびサブパーティションp1s1p1s2p2s1およびp2s2を持つ)には次の4つのtable_dataオブジェクトがあります。

    scott.sub_part_table:p1s1

    scott.sub_part_table:p1s2

    scott.sub_part_table:p2s1

    scott.sub_part_table:p2s2

ネットワーク・モード・インポート中、各table_dataオブジェクトには、PARALLELパラメータに指定された値までの独自のワーカー・プロセスが割り当てられます。ネットワーク・モード・インポートではパラレル問合せ(PQ)スレーブを使用しないため、パラレル問合せ(PQ)スレーブは割り当てられません。複数のtable_dataオブジェクトを同時にアンロードすることは可能ですが、各table_dataオブジェクトはシングル・プロセスを使用してアンロードされます。

Oracle RAC環境でのインポートにおけるPARALLELの使用

Oracle Real Application Clusters(Oracle RAC)環境でPARALLEL=1としてインポート操作を実行すると、すべてのデータ・ポンプ・プロセスは、ジョブが開始されたインスタンス上に配置されます。そのため、ディレクトリ・オブジェクトは、そのインスタンスのローカル記憶域を示すことができます。

PARALLELを1より大きな値に設定してインポート操作を実行する場合は、ジョブが開始されたインスタンス以外のインスタンスにもデータ・ポンプ・プロセスを置くことができます。そのため、ディレクトリ・オブジェクトは、Oracle RACのすべてのインスタンスからアクセス可能な共有記憶域を示す必要があります。

制限事項

  • このパラメータは、Oracle Database 11gのEnterprise Editionでのみ有効です。

  • 表および表パーティションをパラレルで(PQスレーブを使用して)インポートするには、DATAPUMP_IMP_FULL_DATABASEロールが必要です。

次に、PARALLELパラメータの使用例を示します。

> impdp hr DIRECTORY=dpump_dir1 LOGFILE=parallel_import.log 
JOB_NAME=imp_par3 DUMPFILE=par_exp%U.dmp PARALLEL=3

このコマンドは、ExportのPARALLELパラメータの例を実行した場合に作成されるダンプ・ファイル・セットをインポートします。(詳細は、「PARALLEL」を参照してください。)ダンプ・ファイル名は、par_exp01.dmppar_exp02.dmpおよびpar_exp03.dmpです。

PARFILE

デフォルト: デフォルト値は設定されていません。

用途

インポート・パラメータ・ファイルの名前を指定します。

構文および説明

PARFILE=[directory_path]file_name

サーバーによって作成され、書き込まれるダンプ・ファイル、ログ・ファイル、SQLファイルとは異なり、パラメータ・ファイルは、impdpクライアントによってオープンされ、読み込まれます。したがって、ディレクトリ・オブジェクトの名前は不要かつ不適切です。デフォルトは、ユーザーの現行のディレクトリです。値の指定に引用符が必要なパラメータを使用する場合は、パラメータ・ファイルを使用することをお薦めします。

制限事項

  • PARFILEパラメータは、パラメータ・ファイル内には指定できません。

パラメータ・ファイルhr_imp.parの内容は、次のとおりです。

TABLES= countries, locations, regions
DUMPFILE=dpump_dir2:exp1.dmp,exp2%U.dmp
DIRECTORY=dpump_dir1
PARALLEL=3 

このパラメータ・ファイルを指定するには、次のコマンドを実行します。

> impdp hr PARFILE=hr_imp.par

countrieslocationsおよびregionsは、ExportのDUMPFILEパラメータの例を実行した場合に作成されるダンプ・ファイル・セットからインポートされます。(詳細は、「DUMPFILE」を参照してください。)インポート・ジョブは、dpump_dir2で示される位置にあるexp1.dmpファイルを検索します。また、dpump_dir1によって示される位置にあるexp2nn.dmpの形式のすべてのダンプ・ファイルも検索します。そのジョブのログ・ファイルも、dpump_dir1に書き込まれます。

PARTITION_OPTIONS

デフォルト: パーティション名がTABLESパラメータで指定され、TRANPORTABLE=ALWAYSが(インポート操作時またはエクスポート中に)設定されている場合、デフォルトはdepartitionです。それ以外の場合、デフォルトはnoneとなります。

用途

インポート操作中に表パーティションをどのように作成するかを指定します。

構文および説明

PARTITION_OPTIONS=[NONE | DEPARTITION | MERGE]

noneの値を指定した場合、エクスポート操作が実行されたシステム上に存在していたのと同様に表が作成されます。エクスポートがパーティションまたはサブパーティション・フィルタとともにトランスポータブル・メソッドを使用して実行されている場合、noneオプションまたはmergeオプションは使用できません。そのような場合は、departitionオプションを使用する必要があります。

departitionの値を指定した場合、各パーティションまたはサブパーティションは、新しい個々の表に昇格します。新規表のデフォルト名は、表とパーティションの名前、または表とサブパーティションの名前を適切に組み合せたものとなります。

mergeの値を設定した場合、すべてのパーティションおよびサブパーティションは1つの表に統合されます。

パーティション表のインポート中の並列処理では次のような影響があります。

  • パーティション表が既存のパーティション表にインポートされた場合、データ・ポンプはPARALLELパラメータで指定される値にかかわらず、一度に1つのパーティションまたはサブパーティションのみを処理します。

  • インポート先の表がまだ存在しておらず、データ・ポンプでそれを作成する必要がある場合、インポートは、インポートが開始されたときにPARALLELパラメータで指定された並列化まで並列して実行します。

制限事項

  • ダンプ・ファイルを作成したエクスポート操作がトランスポータブル・メソッドにより実行されており、パーティションまたはサブパーティションが指定されている場合、インポート操作ではdepartitionオプションを使用する必要があります。

  • ダンプ・ファイルを作成したエクスポート操作がトランスポータブル・メソッドにより実行されている場合、インポート操作でPARTITION_OPTIONS=MERGEは使用できません。

  • 非パーティション化されているオブジェクトに対する権限が存在する場合、エラー・メッセージが生成され、オブジェクトはロードされません。

次の例は、sh.sales表がsales.dmpという名前のダンプ・ファイルにエクスポートされていることを前提としています。ここでは、mergeオプションを使用して、sh.sales内のすべてのパーティションをscottスキーマ内の非パーティション表にマージします。

> impdp system TABLES=sh.sales PARTITION_OPTIONS=MERGE 
DIRECTORY=dpump_dir1 DUMPFILE=sales.dmp REMAP_SCHEMA=sh:scott

参照:

PARTITION_OPTIONS=DEPARTITIONを使用したインポート操作の実行例は、「TRANSPORTABLE」を参照してください。

QUERY

デフォルト: デフォルト値は設定されていません。

用途

インポート対象となるデータをフィルタ処理する問合せ句を指定できます。

構文および説明

QUERY=[[schema_name.]table_name:]query_clause

通常、query_clauseでは、ファイングレイン行選択のためのSQL WHERE句を使用しますが、任意のSQL句を使用できます。たとえば、ORDER BY句を使用すると、ヒープ構成表から索引構成表への移行を高速化できます。スキーマおよび表名を指定しなかった場合は、ソース・ダンプ・ファイル・セットまたはデータベース内のすべての表に問合せが適用されます(この場合、問合せは、これらのすべての表に対して有効である必要があります)。表固有の問合せは、すべての表に適用される問合せより優先されます。

特定の表に問合せを適用する場合は、表名と問合せ句をコロン(:)で区切る必要があります。表固有の問合せは複数指定できますが、1つの表に指定できるのは1つの問合せのみです。

QUERYパラメータと一緒にNETWORK_LINKパラメータを指定する場合、リモート(ソース)ノード上にあるquery_clauseで指定されるすべてのオブジェクトは、NETWORK_LINK値で明示的に修飾する必要があります。それ以外の場合、データ・ポンプではオブジェクトがローカル(ターゲット)ノード上に存在することを前提とし、存在しない場合はエラーが返され、リモート(ソース)システムからの表のインポートは失敗します。

たとえば、NETWORK_LINK=dblink1と指定した場合、QUERYパラメータのquery_clauseは、次の例に示すようにそのリンクを指定する必要があります。

QUERY=(hr.employees:"WHERE last_name IN(SELECT last_name 
FROM hr.employees@dblink1)")

オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。詳細は、「データ・ポンプ・コマンドラインでの引用符の使用」を参照してください。

QUERYパラメータを使用すると、外部表による方法(ダイレクト・パスによる方法ではなく)でデータベース・アクセスが実行されます。

表固有の問合せで自分のスキーマ以外のスキーマを指定するには、その特定の表に対するアクセス権限が付与されている必要があります。

制限事項

  • QUERYパラメータは次のパラメータとは併用できません。

    • CONTENT=METADATA_ONLY

    • SQLFILE

    • TRANSPORT_DATAFILES

  • 表にQUERYパラメータが指定されている場合、データ・ポンプは外部表を使用してターゲット表をロードします。外部表は、SQLのINSERT文をSELECT句とともに使用します。QUERYパラメータの値は、INSERT文のSELECT部分にあるWHERE句に含まれています。QUERYパラメータにロードする表と一致する名前の列がある他の表への参照が含まれていて、これらの列が問合せで使用される場合は、表別名を使用して、ロードする表内の列と、SELECT文内の同じ名前を持つ列を区別する必要があります。ロードする表に対してデータ・ポンプで使用される表別名は、KU$です。

    たとえば、sh.customers表にある顧客のクレジットの上限に基づいてsh.sales表のサブセットをインポートするとします。次の例では、KU$を使用して、sh.salesをロードするためにQUERYパラメータ内のcust_idフィールドを修飾します。この結果、データ・ポンプによって、クレジットの上限が$10,000を超える顧客の行のみがインポートされます。

    QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c
    WHERE cust_credit_limit > 10000 AND ku$.cust_id = c.cust_id)"'
    

    表別名としてKU$を使用しないと、すべての行がロードされます。

    QUERY='sales:"WHERE EXISTS (SELECT cust_id FROM customers c
    WHERE cust_credit_limit > 10000 AND cust_id = c.cust_id)"'
    
  • QUERYに使用できる文字列の最大長は、引用符を含めて4000バイトです。つまり、許容される実際の最大長は3998バイトです。

次に、QUERYパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。QUERY値には引用符を使用するため、パラメータ・ファイルを使用することをお薦めします。

次の内容のパラメータ・ファイルquery_imp.parを作成したとします。

QUERY=departments:"WHERE department_id < 120"

次のコマンドを入力します。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp 
  PARFILE=query_imp.par NOLOGFILE=YES

expfull.dmp内のすべての表はインポートされますが、departments表については、QUERYパラメータに指定した基準を満たすデータのみがインポートされます。

REMAP_DATA

デフォルト: デフォルト値は設定されていません。

用途

REMAP_DATAパラメータを使用すると、新規データベースへの挿入時に、データを再マップできます。一般的には、プライマリ・キーを再生成して、ターゲット・データベース上の既存の表に表をインポートする場合の競合を回避するために使用されます。

ダンプ・ファイルまたはリモート・データベースのいずれかから、指定した列の値をソースとして取得するには、再マップ・ファンクションを指定します。再マップ・ファンクションを指定すると、ターゲット・データベースの元の値を置き換える再マップした値が返されます。

同じファンクションを、ダンプされる複数の列に適用できます。これは、参照制約で子と親両方の列を再マップするときに整合性を保つ必要がある場合に役立ちます。

構文および説明

REMAP_DATA=[schema.]tablename.column_name:[schema.]pkg.function

次に、各構文要素の説明を構文で出現する順に示します。

schema: 再マップされる表を含むスキーマ。デフォルトでは、これはインポートを実行するユーザーのスキーマです。

tablename: 列の再マップが行われる表。

column_name: データが再マップされる列。単一の表について再マップできる列の最大数は10です。

schema: 再マップ・ファンクションを含むユーザー作成のPL/SQLパッケージを含むスキーマ。デフォルトでは、これはインポートを実行するユーザーのスキーマです。

pkg: 再マップ・ファンクションを含むユーザー作成のPL/SQLパッケージの名前。

function: 指定した表の各行で、列表を再マップする場合にコールされるPL/SQL内のファンクションの名前。

制限事項

  • ソース引数および戻り値のデータ型はともに、表内の指定した列のデータ型と一致している必要があります。

  • 再マップ・ファンクションでは、自律型トランザクション以外のコミットまたはロール・バックを実行できません。

  • 単一の表について再マップできる列の最大数は10です。表aの9列と表bの8列などのように再マップできますが、各表での最大値は10です。

  • REMAP_DATAパラメータの値としてのシノニムの使用はサポートされていません。たとえば、hrスキーマ内のregions表にregnのシノニムがある場合は、regnREMPA_DATA仕様の一部として指定した場合にエラーが返されます。

  • リモート表のLOB列データの再マッピングはサポートされません。

次の例では、plusxという名前のファンクションを格納するremapという名前のパッケージが作成されており、このファンクションはemployees表内のfirst_nameの値を変更すると想定しています。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp
TABLES=hr.employees REMAP_DATA=hr.employees.first_name:hr.remap.plusx

REMAP_DATAFILE

デフォルト: デフォルト値は設定されていません。

用途

ソース・データ・ファイルが参照されるすべてのSQL文(CREATE TABLESPACECREATE LIBRARYおよびCREATE DIRECTORY)で、ソース・データ・ファイルの名前をターゲット・データ・ファイル名に変更します。

構文および説明

REMAP_DATAFILE=source_datafile:target_datafile

データ・ファイルの再マップは、ファイル名のネーミング規則が異なるプラットフォーム間でデータベースを移動する場合に有効です。source_datafiletarget_datafileの名前は、SQL文で指定するとおりのものである必要があります。コロンが有効なファイル指定文字として使用されるプラットフォームでの曖昧さを排除するために、データ・ファイル名は引用符で囲むことをお薦めします。

オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。

このパラメータを指定するには、DATAPUMP_IMP_FULL_DATABASEロールが必要です。

次の内容のパラメータ・ファイルpayroll.parを作成したとします。

DIRECTORY=dpump_dir1
FULL=YES
DUMPFILE=db_full.dmp
REMAP_DATAFILE="'DB1$:[HRDATA.PAYROLL]tbs6.dbf':'/db1/hrdata/payroll/tbs6.dbf'"

次のコマンドを発行します。

> impdp hr PARFILE=payroll.par

この例では、インポート時に、すべてのSQL DDL文に対するVMSファイル指定(DR1$:[HRDATA.PAYROLL]tbs6.dbf)をUNIXファイル指定(/db1/hrdata/payroll/tbs6.dbf)に再マップします。ダンプ・ファイルdb_full.dmpは、ディレクトリ・オブジェクトdpump_dir1によって位置が示されます。

REMAP_SCHEMA

デフォルト: デフォルト値は設定されていません。

用途

ソース・スキーマにあるすべてのオブジェクトをターゲット・スキーマにロードします。

構文および説明

REMAP_SCHEMA=source_schema:target_schema

複数のREMAP_SCHEMA行を指定できますが、ソース・スキーマは行ごとに異なっている必要があります。ただし、異なるソース・スキーマを同じターゲット・スキーマにマップすることはできます。インポート操作で検出できない特定のスキーマ参照があるため、マッピングは完全ではない場合があります(詳細は、次の「制限事項」を参照してください)。

再マッピング先のスキーマが存在しない場合は、インポート操作によってそのスキーマが作成されます。ただし、ソース・スキーマに必要なCREATE USERメタデータがダンプ・ファイル・セットに含まれており、ユーザーが必要な権限を所有してインポートを実行していることが条件となります。たとえば、次のExportコマンドの場合、ユーザーSYSTEMには必要な権限があるため、スキーマの作成に必要なメタデータを含むダンプ・ファイル・セットが作成されます。

> expdp system SCHEMAS=hr
Password: password

> expdp system FULL=YES
Password: password

スキーマの作成に必要なメタデータがダンプ・ファイル・セットに含まれていない場合や、ユーザーに必要な権限がない場合は、インポート操作を実行する前にターゲット・スキーマを作成しておく必要があります。これは、権限が付与されていないダンプ・ファイルには、インポート操作でスキーマを自動作成するための情報が含まれないためです。

インポート操作によってスキーマが作成された場合は、インポートの完了後、そのスキーマに有効なパスワードを割り当てて、接続できるようにする必要があります。パスワードを割り当てるSQL文(権限が必要)は、次のとおりです。

SQL> ALTER USER schema_name IDENTIFIED BY new_password 

制限事項

  • 権限のないユーザーは、自分のスキーマが再マップのターゲット・スキーマの場合にのみ、スキーマの再マップを実行できます。(特権ユーザーがスキーマの再マップを実行する場合は、制限がありません。)たとえば、SCOTTは、自分のBLAKEのオブジェクトをSCOTTに再マップできますが、SCOTTは、SCOTTのオブジェクトをBLAKEに再マップすることはできません。

  • インポートで検出できない一部のスキーマ参照があるため、マッピングは完全ではない場合があります。たとえば、インポートでは、トリガー、タイプ、ビュー、プロシージャおよびパッケージの定義の本体に埋め込まれたスキーマ参照は検出されません。

  • 再マップするスキーマ内の表にユーザー定義のオブジェクト型が含まれており、その表が、エクスポートされる時刻とインポートしようとする時刻の間に変更される場合、その表のインポートは失敗します。ただし、インポート操作自体は続行されます。

  • デフォルトでは、ソース・データベースのスキーマ・オブジェクトにオブジェクト識別子(OID)がある場合、それらと同じOIDを持つターゲット・データベースにインポートされます。オブジェクトがエクスポート元と同じデータベースであって異なるスキーマにインポートされた場合、新しい(インポートされた)オブジェクトのOIDは、既存のオブジェクトと同じものになり、インポートは失敗します。インポートを成功させるには、インポート時にTRANFORM=OID:Nパラメータも指定する必要があります。変換OID:Nにより新しいオブジェクトに対して新しいOIDが作成され、インポートが成功します。

ユーザーSYSTEMとして、次のエクスポートおよびインポート・コマンドを実行して、hrスキーマをscottスキーマに再マップするとします。

> expdp system SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp

> impdp system DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp REMAP_SCHEMA=hr:scott

この例では、インポート前にユーザーscottが存在する場合、インポートのREMAP_SCHEMAコマンドによって、hrスキーマにあるオブジェクトが既存のscottスキーマに追加されます。インポート後、scottスキーマに既存のパスワードで(パスワードの再設定なしで)接続できます。

インポート操作の実行前にユーザーscottが存在しない場合は、インポートによって、このユーザーがパスワードなしで自動作成されます。これは、ダンプ・ファイルhr.dmpが、スキーマの作成に必要なメタデータを含むダンプ・ファイルを作成する権限を所有するSYSTEMによって作成されたためです。ただし、インポート完了後に、ターゲット・データベース上のscottのパスワードを再設定しないかぎり、インポートの完了時にscottには接続できません。

REMAP_TABLE

デフォルト: デフォルト値は設定されていません。

用途

インポート操作中に、表の名前を変更できます。

構文および説明

次のいずれかの構文を使用できます(下記の「使用上の注意」を参照)。

REMAP_TABLE=[schema.]old_tablename[.partition]:new_tablename

または

REMAP_TABLE=[schema.]old_tablename[:partition]:new_tablename

REMAP_TABLEパラメータを使用して表全体の名前を変更するか、表を非パーティションする場合の表のパーティションを変更できます。(詳細は、「PARTITION_OPTIONS」を参照してください。)

これを使用して、エクスポートした表パーティションの自動ネーミングを上書きすることもできます。

使用上の注意

最初の構文では、REMAP_TABLE=A.B:Cを指定すると、インポートによってAはスキーマ名、Bは古い表名、Cは新しい表名とみなされることに注意してください。最初の構文を使用して、非パーティション表にするパーティションの名前を変更するには、スキーマ名を指定する必要があります。

2番目の構文を使用して、非パーティション表にするパーティションの名前を変更するには、古い表名で指定します。スキーマ名は必要ありません。

制限事項

  • インポートによって作成されたオブジェクトのみ、再マップされます。既存の表は再マップされないことに注意してください。

  • 再マップする表が同じスキーマ内に名前付きの制約を持っていて、表の作成時に制約を作成する必要がある場合、REMAP_TABLEパラメータは機能しません。

次の例では、REMAP_TABLEパラメータを使用して、employees表をempsという新しい名前に変更します。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp
TABLES=hr.employees REMAP_TABLE=hr.employees:emps 

REMAP_TABLESPACE

デフォルト: デフォルト値は設定されていません。

用途

ターゲット表領域に作成するソース表領域内の永続データを使用して、インポート用に選択されたすべてのオブジェクトを再マップします。

構文および説明

REMAP_TABLESPACE=source_tablespace:target_tablespace

複数のREMAP_TABLESPACEパラメータを指定できますが、ソース表領域はパラメータごとに1つのみです。ターゲット・スキーマのターゲット表領域には、十分な割当て制限が必要です。

データ・ポンプ・インポートで表領域を再マップする唯一の方法は、REMAP_TABLESPACEパラメータを使用することです。これは、オリジナルのインポート・ユーティリティの機能よりも簡単で正確な方法です。その方法には、表領域の副次句の数など多くの制限事項があり、一部のDDLコマンドを正常に実行できない場合がありました。

これに対し、REMAP_TABLESPACEパラメータを使用するデータ・ポンプ・インポートの方法は、ユーザーを含むすべてのオブジェクトに対して、DDL文に含まれる表領域副次句の数にかかわりなく有効に使用できます。

制限事項

  • データ・ポンプ・インポートで再マップ可能なトランスポータブル・インポートの表領域は、互換性レベルが10.1以降に設定されているデータベースにあるもののみです。

  • インポートによって作成されたオブジェクトのみ、再マップされます。特に、既存の表の表領域は、TABLE_EXISTS_ACTIONSKIPTRUNCATEまたはAPPENDに設定されている場合は、再マップされません。

次に、REMAP_TABLESPACEパラメータの使用例を示します。

> impdp hr REMAP_TABLESPACE=tbs_1:tbs_6 DIRECTORY=dpump_dir1
  DUMPFILE=employees.dmp 

REUSE_DATAFILES

デフォルト: NO

用途

インポート・ジョブで、表領域の作成に既存のデータ・ファイルを再利用するかどうかを指定します。

構文および説明

REUSE_DATAFILES=[YES | NO]

デフォルト(n)が使用され、CREATE TABLESPACE文で指定されているデータ・ファイルがすでに存在する場合は、CREATE TABLESPACE文の失敗によるエラー・メッセージが発行されますが、インポート・ジョブは続行されます。

このパラメータにYを指定すると、既存のデータ・ファイルが再度初期化されます。


注意:

REUSE_DATAFILES=YESを指定すると、データが失われる場合があります。

次に、REUSE_DATAFILESパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp LOGFILE=reuse.log
REUSE_DATAFILES=YES

この例では、expfull.dmpファイルのCREATE TABLESPACE文で指定されたデータ・ファイルを再度初期化します。

SCHEMAS

デフォルト: デフォルト値は設定されていません。

用途

スキーマ・モード・インポートの実行を指定します。

構文および説明

SCHEMAS=schema_name [,...]

DATAPUMP_IMP_FULL_DATABASEロールがある場合は、インポートするスキーマのリストをこのパラメータで指定して、スキーマ・モードのインポートを実行できます。まず、システムおよびロールの権限、パスワード履歴などを含むユーザー定義がインポートされます(存在しない場合)。次に、スキーマ内のすべてのオブジェクトがインポートされます。権限のないユーザーは、自分のスキーマか、自分のスキーマに再マップされるスキーマのみを指定できます。この場合、スキーマ定義についての情報はインポートされず、その定義内に含まれているオブジェクトのみがインポートされます。

このインポート・モードを使用したインポート対象を、フィルタ処理によって制限できます。詳細は、「インポート操作中のフィルタ処理」を参照してください。

スキーマ・モードは、ネットワーク・ベース・インポートを実行する際のデフォルト・モードです。

次に、SCHEMASパラメータの使用例を示します。この例では、ExportのSCHEMASパラメータで示した例を実行して、expdat.dmpファイルを作成できます。詳細は、「SCHEMAS」を参照してください。

> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 LOGFILE=schemas.log
DUMPFILE=expdat.dmp

hrスキーマは、expdat.dmpファイルからインポートされます。ログ・ファイルschemas.logは、dpump_dir1に書き込まれます。

SERVICE_NAME

デフォルト: デフォルト値は設定されていません。

用途

CLUSTERパラメータと組み合せて使用するサービス名を指定するために使用します。

構文および説明

SERVICE_NAME=name

SERVICE_NAMEパラメータをCLUSTER=YESパラメータとともに使用して、リソース・グループに属しているOracle Real Application Clusters(Oracle RAC)インスタンス群(通常は全Oracle RACインスタンスのサブセット)を定義するリソース・グループに関連付けられている、既存のサービスを指定できます。

サービス名は、リソース・グループおよびそのリソース・グループに対して定義されたインスタンスを決定する目的でのみ使用されます。ジョブが開始されたインスタンスは、そのインスタンスがリソース・グループに含まれているかどうかとは関係なく、常に使用されます。

SERVICE_NAMEパラメータは、CLUSTER=NOと同時に指定されると、無視されます。

インスタンスA、B、CおよびDを含むOracle RAC構成があります。インスタンスA、BおよびCのみで構成されるリソース・グループを持つmy_serviceというサービスが存在するとします。そのような場合は、次の内容が成立します。

  • データ・ポンプ・ジョブをインスタンスAで開始し、CLUSTER=YESを指定し(またはデフォルトのYESをそのまま使用し)、SERVICE_NAMEパラメータを指定しない場合、データ・ポンプは指定の並列度に応じてすべてのインスタンス(A、B、CおよびD)にワーカーを作成します。

  • データ・ポンプ・ジョブをインスタンスAで開始し、CLUSTER=YESおよびSERVICE_NAME=my_serviceを指定した場合、ワーカーは、インスタンスA、BおよびCのみで開始可能です。

  • データ・ポンプ・ジョブをインスタンスDで開始し、CLUSTER=YESおよびSERVICE_NAME=my_serviceを指定した場合、ワーカーは、インスタンスA、B、CおよびDのみで開始可能です。インスタンスDはmy_serviceに存在しませんが、インスタンスDはジョブが開始されたインスタンスであるため含まれています。

  • データ・ポンプ・ジョブをインスタンスAで開始し、CLUSTER=NOを指定した場合、SERVICE_NAMEパラメータを指定しても無視され、すべてのプロセスがインスタンスAで開始されます。


参照:

「CLUSTER」

> impdp system DIRECTORY=dpump_dir1 SCHEMAS=hr
  SERVICE_NAME=sales NETWORK_LINK=dbs1

この例では、hrスキーマのスキーマ・モード・ネットワーク・インポートを開始します。コマンドラインではCLUSTER=YESは指定されていませんが、それはデフォルトの動作なので、ジョブではサービス名salesに関連付けられたリソース・グループのすべてのインスタンスが使用されます。dbs1NETWORK_LINK値は、データのインポート元であるソース・データベース名に置き換えます。(これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。)

NETWORK_LINKパラメータは、単にこの例の一部として使用されています。SERVICE_NAMEパラメータの使用時は必須ではありません。

SKIP_UNUSABLE_INDEXES

デフォルト: Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXESの値

用途

インポートで、(システムまたはユーザーのいずれかによって)索引使用禁止に設定されている索引を持つ表をロードするかどうかを指定します

構文および説明

SKIP_UNUSABLE_INDEXES=[YES | NO]

SKIP_UNUSABLE_INDEXESYESに設定されているときに、索引が使用禁止の状態になっている表またはパーティションが検出された場合、その表やパーティションは、使用禁止の索引が存在しない場合と同様にロードされます。

SKIP_UNUSABLE_INDEXESNOに設定されているときに、索引が使用禁止の表またはパーティションが検出された場合、その表やパーティションはロードされません。索引が使用禁止に設定されていない他の表に対しては、行の挿入時に更新が行われます。

SKIP_UNUSABLE_INDEXESパラメータが指定されていない場合は、Oracle Databaseの構成パラメータSKIP_UNUSABLE_INDEXESの設定値(デフォルト値はy)が参照され、使用禁止の索引の処理が決定されます。

制約の施行に使用される索引に使用禁止のマークが付けられている場合、その表にデータはインポートされません。


注意:

このパラメータは、データを既存の表にインポートする場合にのみ有効です。インポート処理の一環として表が作成される場合は、表と索引が新規に作成され、使用禁止のマークは付けられないため、このパラメータによる実質的な効果はありません。

次に、SKIP_UNUSABLE_INDEXESパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp LOGFILE=skip.log
SKIP_UNUSABLE_INDEXES=YES

SOURCE_EDITION

デフォルト: オブジェクトがフェッチされるリモート・ノード上のデフォルトのデータベース・エディション

用途

オブジェクトがフェッチされるリモート・ノード上のデータベース・エディションを指定します。

構文および説明

SOURCE_EDITION=edition_name

SOURCE_EDITION=edition_nameを指定すると、そのエディションのオブジェクトがインポートされます。データ・ポンプは、変更されずに継承されているすべてのオブジェクトと、変更されているすべての実際のオブジェクトを選択します。

このパラメータが指定されていない場合は、デフォルトのエディションが使用されます。指定されたエディションが存在しない場合や使用できない場合は、エラー・メッセージが返されます。


参照:

  • エディションの作成方法の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • エディション機能(継承されたオブジェクトと実際のオブジェクトも含む)の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。


制限事項

  • SOURCE_EDITIONパラメータがインポート操作で有効なのは、NETWORK_LINKパラメータも指定されている場合のみです。詳細は、「NETWORK_LINK」を参照してください。

  • このパラメータは、バージョニング可能な同じオブジェクトのバージョンがデータベース内に2つ以上ある場合にのみ有効です。

  • ジョブ・バージョンは、11.2以上に設定されている必要があります。詳細は、「VERSION」を参照してください。

次に、インポートのSOURCE_EDITIONパラメータの使用例を示します。

> impdp hr DIRECTORY=dpump_dir1 SOURCE_EDITION=exp_edition
NETWORK_LINK=source_database_link EXCLUDE=USER

この例は、オブジェクトのインポート元となるexp_editionというエディションがシステム上に存在することを前提としています。インポート・モードは指定されていないため、デフォルトのスキーマ・モードが使用されます。source_database_linkは、データのインポート元であるソース・データベース名に置き換えます。EXCLUDE=USERパラメータは、ユーザーの定義のみを除外し、ユーザーのスキーマに含まれるオブジェクトは除外しません。(これはネットワーク・インポートであるため、ダンプ・ファイルは生成されません。)

SQLFILE

デフォルト: デフォルト値は設定されていません。

用途

インポートが他のパラメータに基づいて実行するすべてのSQL DDLの書込み先のファイルを指定します。

構文および説明

SQLFILE=[directory_object:]file_name

file_nameには、インポート・ジョブが、ジョブで実行するDDLを書き込むファイル名を指定します。そのSQLは、実際には実行されず、ターゲット・システムも変更されません。ファイルは、他のdirectory_objectが明示的に指定されないかぎり、DIRECTORYパラメータに指定されたディレクトリ・オブジェクトに書き込まれます。このパラメータで指定した名前と一致する名前を持つ既存のファイルはすべて上書きされます。

パスワードは、SQLファイルに含まれないことに注意してください。たとえば、実行したDDLにCONNECT文が含まれている場合、この文はコメントで置き換えられ、スキーマ名のみが表示されます。次の例では、ダッシュ(--)の後に続くのがコメントです。また、hrというスキーマ名は表示されていますが、パスワードは表示されていません。

-- CONNECT hr

したがって、SQLファイルは、実行する前に、コメントを示すダッシュを削除し、hrスキーマのパスワードを追加して編集する必要があります。

StreamsなどのOracle Databaseオプションでは、無名PL/SQLブロックがSQLFILE出力に出現することがあります。これらは、直接実行しないでください。

制限事項

  • SQLFILEが指定されている場合、CONTENTパラメータは、ALLまたはDATA_ONLYのいずれかに設定されていると無視されます。

  • Oracle Automatic Storage Management (Oracle ASM)を使用してSQLファイルへのデータ・ポンプ・インポートを実行する場合、SQLFILEパラメータでは、Oracle ASMの+表記法を使用せずにディレクトリ・オブジェクトを指定する必要があります。つまり、SQLファイルはディスク・ファイルに書き込まれ、Oracle ASMの記憶域には書き込まれません。

  • SQLFILEパラメータは、QUERYパラメータと組み合せて使用することはできません。

次に、SQLFILEパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
SQLFILE=dpump_dir2:expfull.sql

SQLファイルexpfull.sqlは、dpump_dir2に書き込まれます。

STATUS

デフォルト: 0

用途

ジョブ状態が表示される頻度を指定します。

構文および説明

STATUS[=integer]

integerに値を入力すると、ロギング・モードでジョブの状態を表示する頻度を秒単位で指定できます。値を入力しなかった場合またはデフォルト値の0を使用した場合、各オブジェクト型、表またはパーティションの完了に関する情報のみ表示されます。

この状態情報は、標準出力デバイスのみに書き込まれ、ログ・ファイルには(使用可能な場合でも)書き込まれません。

次に、STATUSパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr NOLOGFILE=YES STATUS=120 DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp

この例では、状態が2分(120秒)ごとに表示されます。

STREAMS_CONFIGURATION

デフォルト: YES

用途

エクスポート・ダンプ・ファイル内に存在するStreamsメタデータをインポートするかどうかを指定します。

構文および説明

STREAMS_CONFIGURATION=[YES | NO]

次に、STREAMS_CONFIGURATIONパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp STREAMS_CONFIGURATION=NO

参照:

『Oracle Streamsレプリケーション管理者ガイド』

TABLE_EXISTS_ACTION

デフォルト: SKIP (CONTENT=DATA_ONLYが指定されている場合、デフォルトはSKIPではなく、APPENDです。)

用途

インポート・ユーティリティに対して、作成しようとしている表がすでに存在する場合に行う操作を指定します。

構文および説明

TABLE_EXISTS_ACTION=[SKIP | APPEND | TRUNCATE | REPLACE]

次の値を指定できます。

  • SKIP: 表はそのままにして、次のオブジェクトに移動します。CONTENTパラメータがDATA_ONLYに設定されている場合、このオプションは無効です。

  • APPEND: ソースから行をロードし、既存の行は変更しません。

  • TRUNCATE: 既存の行を削除した後、ソースから行をロードします。

  • REPLACE: 既存の表を削除した後、ソースから表を作成およびロードします。CONTENTパラメータがDATA_ONLYに設定されている場合、このオプションは無効です。

これらのオプションを使用する場合に考慮する事項は次のとおりです。

  • TRUNCATEまたはREPLACEを使用する場合は、影響を受ける表の行が参照制約のターゲットではないことを確認してください。

  • SKIPAPPENDまたはTRUNCATEを使用する場合、索引、権限、トリガー、制約など、ソースの既存の表依存オブジェクトは変更されません。REPLACEを使用すると、依存オブジェクトが明示的または暗黙的に除外(EXCLUDEを使用して)され、それらがソースのダンプ・ファイルまたはシステムに存在する場合、依存オブジェクトは削除され、ソースから再作成されます。

  • APPENDまたはTRUNCATEを使用する場合は、操作を実行する前に、ソースにある行が既存の表に適合するかどうかがチェックされます。

    既存の表にアクティブな制約およびトリガーがある場合は、外部表によるアクセス方法を使用してロードされます。アクティブな制約に違反する行がある場合、ロードは失敗し、データはロードされません。この動作を変更するには、インポート・ユーティリティのコマンドラインでDATA_OPTIONS=SKIP_CONSTRAINT_ERRORSを指定します。

    制約違反の可能性があるデータをロードする必要がある場合は、制約を無効にし、データをロードした後、制約を再度有効にする前に問題のある行を削除する方法を検討してください。

  • APPENDを使用すると、常に、データは新しい領域にロードされます。既存の領域は、使用可能な場合でも再利用されません。そのため、ロード後にデータを圧縮することもできます。

  • 既存のターゲット表の有無によりパーティション表の並列処理がどのように影響を受けるかの詳細は、インポートのPARTITION_OPTIONSパラメータの説明も参照してください。


注意:

データ・ポンプは、ソース表とターゲット表の不一致(2つの表の列数が同じでないか、ソース表にない列名がターゲット表にある)を検出すると、2つの表間で列名を比較します。これらの表に共通の列が少なくとも1つあると、(データ型に互換性があるとみなされる)共通する列のデータが表にインポートされます。次の制限が適用されます。
  • この動作はネットワーク・インポートではサポートされません。

  • 次の型の列は削除できません。オブジェクト列、オブジェクト属性、ネストされた表の列、主キーに基づくREF列。


制限事項

  • TRUNCATEは、クラスタ化された表では使用できません。

次に、TABLE_EXISTS_ACTIONパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr TABLES=employees DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
TABLE_EXISTS_ACTION=REPLACE

TABLES

デフォルト: デフォルト値は設定されていません。

用途

表モード・インポートの実行を指定します。

構文および説明

TABLES=[schema_name.]table_name[:partition_name]

表モード・インポートでは、表およびパーティションまたはサブパーティションをカンマで区切ったリストを指定して、ソースからインポートするデータをフィルタ処理できます。

schema_nameを指定しなかった場合は、デフォルトで現在のユーザーのスキーマ名になります。自分のスキーマ以外のスキーマを指定するには、DATAPUMP_IMP_FULL_DATABASEロールを持っているか、またはスキーマを現在のユーザーに再マップする必要があります。

このインポート・モードを使用したインポート対象を、フィルタ処理によって制限できます。詳細は、「インポート操作中のフィルタ処理」を参照してください。

partition_nameを指定する場合は、関連表にあるパーティションまたはサブパーティションの名前にする必要があります。

ワイルドカード文字%を使用して、表名およびパーティション名を指定できます。

表名には次の制限があります。

  • デフォルトでは、表名は大文字でデータベースに格納されます。表名が大文字と小文字または小文字のみで表記され、大/小文字を区別する場合、名前を引用符で囲む必要があります。したがって、表名は、データベースに格納されている表名と完全に一致するように指定する必要があります。

    ただし、オペレーティング・システムによっては、コマンドラインの引用符自体をエスケープする必要がある場合があります。次に、異なるインポート・モードで大/小文字の区別を保持する方法を示します。

    • コマンドライン・モード

      TABLES='\"Emp\"'
      
    • パラメータ・ファイル・モード

      TABLES='"Emp"'
      
  • 表名を引用符で囲まないかぎり、コマンドラインで指定する表名にシャープ(#)記号は使用できません。同様に、パラメータ・ファイルでは、表名が引用符で囲まれていないかぎり、表名にシャープ(#)記号を使用すると、インポート・ユーティリティではシャープ(#)記号より右側の文字がコメントとして解釈されます。

    たとえば、パラメータ・ファイルに次のコマンドラインが記述されている場合、インポート・ユーティリティではemp#の右側がすべてコメントとして解釈されるため、表deptおよびmydataはインポートされません。

    TABLES=(emp#, dept, mydata)
    

    ただし、パラメータ・ファイルに次の行が含まれる場合は、emp#が引用符で囲まれているため、インポート・ユーティリティは3つの表をすべてインポートします。

    TABLES=('"emp#"', dept, mydata)
    

    注意:

    オペレーティング・システムによっては、一重引用符を使用する必要がある場合と、二重引用符を使用する必要がある場合があります。ご使用のオペレーティング・システム固有のドキュメントで確認してください。表のネーミング方法に制限があるオペレーティング・システムもあります。

    たとえば、UNIXのCシェルではドル記号($)やシャープ(#)(またはその他の特殊文字)には特別な意味があります。これらの文字をシェルを介してインポートするには、エスケープ文字を使用する必要があります。


制限事項

  • TABLESパラメータの値としてのシノニムの使用はサポートされていません。たとえば、hrスキーマのregions表にregnのシノニムが存在する場合、TABLES=regnを使用すると無効になります。この場合、エラーが返されます。

  • インポートに対してPARTITION_OPTIONS=DEPARTITION も指定されている場合、1つの表からのパーティションのみを指定できます。

  • TRANSPORTABLE=ALWAYSを指定する場合は、TABLESパラメータで指定されるすべてのパーティションが同じ表内に存在する必要があります。

  • TABLESパラメータに指定する表名のリストの長さは、最大4MBに制限されます。ただし、NETWORK_LINKパラメータで10.2.0.3以前のOracle Databaseまたは読取り専用のデータベースが設定されている場合は異なります。この場合の上限は4KBです。

次に、TABLESパラメータを使用して、expfull.dmpファイルからemployeesおよびjobs表のみをインポートする簡単な例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLES=employees,jobs

次に、 TABLESパラメータを使用したパーティションのインポート例を示します。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expdat.dmp 
TABLES=sh.sales:sales_Q1_2008,sh.sales:sales_Q2_2008

この例では、shスキーマのsales表のパーティションsales_Q1_2008およびsales_Q2_2008をインポートします。

TABLESPACES

デフォルト: デフォルト値は設定されていません。

用途

表領域モード・インポートの実行を指定します。

構文および説明

TABLESPACES=tablespace_name [, ...]

TABLESPACESを使用して、表と依存オブジェクトがソース(全体インポート・モード、スキーマ・モード、表領域モードまたは表モードのエクスポート・ダンプ・ファイル・セット、あるいは別のデータベース)からインポートされる表領域名のリストを指定します。

インポートの次の状況では、データ・ポンプによりデータのインポート先に自動的に表領域が作成されます。

  • インポートがFULLモードまたはTRANSPORT_TABLESPACESモードで実行されている場合

  • インポートがTRANSPORTABLE=ALWAYSを含む表モードで実行されている場合

その他のすべての場合では、選択したオブジェクトの表領域がインポート先のデータベースにすでに存在している必要があります。REMAP_TABLESPACEインポート・パラメータを使用して、インポート先のデータベースにある表領域に表領域名をマッピングすることもできます。

このインポート・モードを使用したインポート対象を、フィルタ処理によって制限できます。詳細は、「インポート操作中のフィルタ処理」を参照してください。

制限事項

  • TABLESPACESパラメータに指定する表領域名のリストの長さは、最大4MBに制限されます。ただし、NETWORK_LINKパラメータで10.2.0.3以前のデータベースまたは読取り専用のデータベースが設定されている場合は異なります。この場合の上限は4KBです。

次に、TABLESPACESパラメータの使用例を示します。表領域はすでに存在するものとします。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLESPACES=tbs_1,tbs_2,tbs_3,tbs_4

この例では、表領域tbs_1tbs_2tbs_3およびtbs_4にデータがある表がすべてインポートされます。

TARGET_EDITION

デフォルト: システム上のデフォルトのデータベース・エディション

用途

オブジェクトのインポート先のデータベース・エディションを指定します。

構文および説明

TARGET_EDITION=name

TARGET_EDITION=nameが指定されている場合、データ・ポンプ・インポートは、ダンプ・ファイル内にあるすべてのオブジェクトを作成します。エディション化可能でないオブジェクトは、すべてのエディションで作成されます。たとえば、表はエディション化可能でないため、ダンプ・ファイル内に表があると、その表が作成されてすべてのエディションから参照できます。ダンプ・ファイル内のオブジェクトでエディション化可能なもの(プロシージャなど)は、指定されたターゲット・エディションのみに作成されます

このパラメータが指定されていない場合は、エクスポート・ジョブでエディションが指定されていた場合でも、ターゲット・データベースのデフォルトのエディションが使用されます。指定されたエディションが存在しない場合や使用できない場合は、エラー・メッセージが返されます。


参照:

  • エディションの作成方法の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

  • エディション機能の詳細は、『Oracle Databaseアドバンスト・アプリケーション開発者ガイド』を参照してください。


制限事項

  • このパラメータは、バージョニング可能な同じオブジェクトのバージョンがデータベース内に2つ以上ある場合にのみ有効です。

  • ジョブ・バージョンは、11.2以上である必要があります。詳細は、「VERSION」を参照してください。

次に、TARGET_EDITIONパラメータの使用例を示します。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=exp_dat.dmp TARGET_EDITION=exp_edition

この例は、オブジェクトのインポート先となるexp_editionというエディションがシステム上に存在することを前提としています。インポート・モードは指定されていないため、デフォルトのスキーマ・モードが使用されます。

TRANSFORM

デフォルト: デフォルト値は設定されていません。

用途

インポート中のオブジェクトに対するオブジェクト作成DDLを変更できます。

構文および説明

TRANSFORM = transform_name:value[:object_type]

transform_nameには、変換の名前を指定します。使用可能なオプションは、次のとおりです。

  • SEGMENT_ATTRIBUTES - 値をyに指定すると、適切なDDLにセグメント属性(物理属性、記憶域属性、表領域およびロギング)が指定されます。デフォルトはyです。

  • STORAGE - 値をyに指定すると、適切なDDLにSTORAGE句が指定されます。デフォルトはyです。SEGMENT_ATTRIBUTES=nの場合、このパラメータは無視されます。

  • OID - 値をnに指定すると、オブジェクトの表と型の作成時に、エクスポートされたOIDの割当てが禁止されます。かわりに、新しいOIDが割り当てられます。これは、スキーマのクローニングに有効ですが、参照オブジェクトには影響しません。デフォルト値はyです。

  • PCTSPACE - この変換のvalueには、0より大きい数字を指定する必要があります。この値は、エクステントの割当てとデータ・ファイル・サイズの変更に使用する、割合の乗数を表します。

    なお、このPCTSPACE変換とデータ・ポンプ・エクスポートのSAMPLEパラメータを組み合せて使用すると、記憶域の割当てサイズを、サンプリングされたデータ・サブセットに合わせることができます。(詳細は、「SAMPLE」を参照してください。)

  • SEGMENT_CREATION - y (デフォルト)に設定した場合、この変換によってSQL SEGMENT CREATION句がCREATE TABLE文に追加されます。つまり、CREATE TABLE文でSEGMENT CREATION DEFERREDSEGMENT CREATION IMMEDIATEのいずれかが明示的に表現されます。値がnの場合、SEGMENT CREATION句はCREATE TABLE文から省略されます。ロードされる表に対してデフォルトのセグメント作成属性を使用するには、このパラメータをnに設定します。(この機能はOracle Database 11gリリース2(11.2.0.2)から使用できます。)

指定するvalueの型は、使用する変換によって異なります。SEGMENT_ATTRIBUTESSTORAGEOIDの各変換では、ブール値(y/n)が必要です。PCTSPACE変換では、整数値が必要です。

object_typeはオプションです。このオプションで、変換が適用されるオブジェクト型を指定します。オブジェクト型を指定しなかった場合、変換はすべての有効なオブジェクト型に適用されます。表3-1に、変換ごとの有効なオブジェクト型を示します。

表3-1 データ・ポンプ・インポートのTRANSFORMパラメータの有効なオブジェクト型


SEGMENT_ATTRIBUTES STORAGE OID PCTSPACE SEGMENT_CREATION

CLUSTER

X

X


X


CONSTRAINT

X

X


X


INC_TYPE



X



INDEX

X

X


X


ROLLBACK_SEGMENT

X

X


X


TABLE

X

X

X

X

X

TABLESPACE

X



X


TYPE



X




次の例では、hrスキーマのemployees表をエクスポートしたとします。表をインポートした結果返されるSQL CREATE TABLE文は、次のようになります。

CREATE TABLE "HR"."EMPLOYEES" 
   ( "EMPLOYEE_ID" NUMBER(6,0), 
     "FIRST_NAME" VARCHAR2(20), 
     "LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE, 
     "EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE, 
     "PHONE_NUMBER" VARCHAR2(20), 
     "HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE, 
     "JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE, 
     "SALARY" NUMBER(8,2), 
     "COMMISSION_PCT" NUMBER(2,2), 
     "MANAGER_ID" NUMBER(6,0), 
     "DEPARTMENT_ID" NUMBER(4,0)
   ) PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 NOCOMPRESS LOGGING
  STORAGE(INITIAL 10240 NEXT 16384 MINEXTENTS 1 MAXEXTENTS 121
  PCTINCREASE 50 FREELISTS 1 FREELIST GROUPS 1 BUFFER_POOL DEFAULT)
  TABLESPACE "SYSTEM" ;

STORAGE句またはTABLESPACE句は、保持しない場合、インポート・ユーティリティのTRANSFORMパラメータを使用してCREATE STATEMENTから削除できます。SEGMENT_ATTRIBUTESの値をnに指定します。これによって、セグメント属性(記憶域と表領域の両方)が表から除外されます。

> impdp hr TABLES=hr.employees DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp
  TRANSFORM=SEGMENT_ATTRIBUTES:n:table

この結果返される、employees表のCREATE TABLE文は次のようになります。STORAGEまたはTABLESPACE句は含まれていません。かわりに、HRスキーマのデフォルト表領域が使用されます。

CREATE TABLE "HR"."EMPLOYEES" 
   ( "EMPLOYEE_ID" NUMBER(6,0), 
     "FIRST_NAME" VARCHAR2(20), 
     "LAST_NAME" VARCHAR2(25) CONSTRAINT "EMP_LAST_NAME_NN" NOT NULL ENABLE, 
     "EMAIL" VARCHAR2(25) CONSTRAINT "EMP_EMAIL_NN" NOT NULL ENABLE, 
     "PHONE_NUMBER" VARCHAR2(20), 
     "HIRE_DATE" DATE CONSTRAINT "EMP_HIRE_DATE_NN" NOT NULL ENABLE, 
     "JOB_ID" VARCHAR2(10) CONSTRAINT "EMP_JOB_NN" NOT NULL ENABLE, 
     "SALARY" NUMBER(8,2), 
     "COMMISSION_PCT" NUMBER(2,2), 
     "MANAGER_ID" NUMBER(6,0), 
     "DEPARTMENT_ID" NUMBER(4,0)
   );

前述の例で示したとおり、SEGMENT_ATTRIBUTES変換は、記憶域と表領域の両方の属性に適用されます。STORAGE句のみを省略して、TABLESPACE句を保持する場合は、STORAGE変換を次のように使用できます。

> impdp hr TABLES=hr.employees DIRECTORY=dpump_dir1 DUMPFILE=hr_emp.dmp
  TRANSFORM=STORAGE:n:table

SEGMENT_ATTRIBUTESおよびSTORAGE変換は、次のコマンドに示すとおり、TRANSFORMパラメータにオブジェクト型を指定しないことによって、すべての適用可能な表オブジェクトおよび索引オブジェクトに適用できます。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=hr.dmp SCHEMAS=hr TRANSFORM=SEGMENT_ATTRIBUTES:n

TRANSPORT_DATAFILES

デフォルト: デフォルト値は設定されていません。

用途

トランスポータブル表領域モード・インポートか、エクスポート時にTRANSPORTABLE=ALWAYSが設定された場合は表モード・インポートによって、ターゲット・データベースにインポートされるデータ・ファイルの一覧を指定します。データ・ファイルはターゲット・データベース・システム上にすでに存在する必要があります。

構文および説明

TRANSPORT_DATAFILES=datafile_name

datafile_nameには、ディレクトリ・オブジェクト名ではなく、ターゲット・データベースが存在するシステムで有効な絶対ディレクトリ・パスを指定する必要があります。

インポート操作前の任意の時点で、ソース・システムからターゲット・システムにデータ・ファイルをコピーしておく必要があります。この処理は、オペレーティング・システムでサポートされている任意のコピー方法で実行できます。必要に応じて、ターゲット・システムにコピーするときに、ファイルの名前を変更できます(例2を参照)。

トランスポータブル表領域モード・エクスポートによって生成されたダンプ・ファイル・セットがすでにある場合、(メタデータを含んでいる)ダンプ・ファイルおよびTRANSPORT_DATAFILESパラメータを指定することで、そのダンプ・ファイルのトランスポータブル・モード・インポートを実行できます。TRANSPORT_DATAFILESパラメータが存在することで、これがトランスポータブル・モード・インポートであることと、実際のデータを取得する場所がインポートに通知されます。

オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。

制限事項

  • TRANSPORT_DATAFILESパラメータは、QUERYパラメータと組み合せて使用することはできません。

例1

次に、TRANSPORT_DATAFILESパラメータの使用例を示します。次の内容のパラメータ・ファイルtrans_datafiles.parを作成したとします。

DIRECTORY=dpump_dir1
DUMPFILE=tts.dmp
TRANSPORT_DATAFILES='/user01/data/tbs1.dbf'

次のコマンドを発行します。

> impdp hr PARFILE=trans_datafiles.par

例2

この例は、トランスポータブル表領域のエクスポートおよびインポート操作の一環として、データ・ファイルの名前を変更する操作を示しています。ソース・システムにemployees.datというデータ・ファイルがあることを前提としています。

  1. オペレーティング・システムでサポートされている方法で、ソース・システムからターゲット・データベースがあるシステムに、employees.datというデータ・ファイルを手動でコピーします。コピー操作の一環として、ファイル名をworkers.datに変更します。

  2. 表領域tbs_1について、トランスポータブル表領域のエクスポートを実行します。

    > expdp hr DIRECTORY=dpump_dir1 DUMPFILE=tts.dmp TRANSPORT_TABLESPACES=tbs_1
    

    tbs_1のメタデータのみ(データなし)がtts.dmpというダンプ・ファイルにエクスポートされます。実際のデータは、手順1でターゲット・データベースにコピーされています。

  3. workers.datというデータ・ファイルの絶対ディレクトリ・パスを指定して、トランスポータブル表領域のインポートを実行します。

    > impdp hr DIRECTORY=dpump_dir1 DUMPFILE=tts.dmp
    TRANSPORT_DATAFILES='/user01/data/workers.dat'
    

    tts.dmpに含まれているメタデータがインポートされ、workers.datファイル内の情報がデータ・ポンプによってデータベースの正しい場所に割り当てられます。

TRANSPORT_FULL_CHECK

デフォルト: NO

用途

指定したトランスポータブル表領域セットが他の表領域内のオブジェクトによって参照されていることを確認するかどうかを指定します。

構文および説明

TRANSPORT_FULL_CHECK=[YES | NO]

TRANSPORT_FULL_CHECK=YESを指定すると、インポート・ユーティリティによって、トランスポータブル・セット内のオブジェクトとトランスポータブル・セット外のオブジェクトの間に依存性が存在しないことが確認されます。ここでは、双方向の依存性がチェックされます。たとえば、トランスポータブル・セット内に表は存在するが、その表の索引は存在しない場合は、エラーが返され、インポート操作が終了します。同様に、トランスポータブル・セット内に索引は存在するが表は存在しない場合も、エラーが返されます。

TRANSPORT_FULL_CHECK=NOを指定すると、インポート・ユーティリティによって、トランスポータブル・セット外のオブジェクトに依存するオブジェクトが、トランスポータブル・セット内に存在しないことのみ確認されます。ここでは、一方向の依存性がチェックされます。たとえば、表は索引に依存しませんが、索引は表に依存します。これは、索引は表なしでは意味を持たないためです。そのため、トランスポータブル・セット内に表は存在するが、表の索引は存在しない場合、このチェックは正常に終了します。ただし、トランスポータブル・セット内に索引は存在するが表は存在しない場合は、インポート操作が終了します。

このチェックに加えて、インポートでは、常に、TRANSPORT_TABLESPACESで指定された表領域セット内に定義されているすべての表(およびその索引)のすべての記憶域セグメントが、表領域セット内に実際に含まれていることが確認されます。

制限事項

  • このパラメータは、NETWORK_LINKパラメータを指定した場合にのみトランスポータブル・モード(またはTRANSPORTABLE=ALWAYSがエクスポート時に指定されていた場合は表モード)に対して有効です。

次の例では、source_database_linkを有効なデータベース・リンクの名前に置き換えます。また、この例では、tbs6.dbfというデータ・ファイルがすでに存在するものとします。

次の内容のパラメータ・ファイルfull_check.parを作成したとします。

DIRECTORY=dpump_dir1
TRANSPORT_TABLESPACES=tbs_6
NETWORK_LINK=source_database_link
TRANSPORT_FULL_CHECK=YES
TRANSPORT_DATAFILES='/wkdir/data/tbs6.dbf'

次のコマンドを発行します。

> impdp hr PARFILE=full_check.par

TRANSPORT_TABLESPACES

デフォルト: デフォルト値は設定されていません。

用途

データベース・リンク(NETWORK_LINKパラメータで指定)経由でトランスポータブル表領域モードのインポートの実行を指定します。

構文および説明

TRANSPORT_TABLESPACES=tablespace_name [, ...]

TRANSPORT_TABLESPACESパラメータは、ソース・データベースからターゲット・データベースにオブジェクト・メタデータがインポートされる表領域の名前のリストを指定するために使用します。

これはトランスポータブル・モード・インポートであるため、データのインポート先の表領域は、データ・ポンプによって自動的に作成されます。事前に表領域を作成しておく必要はありません。ただし、インポートを開始する前に、データ・ファイルをターゲット・データベースにコピーする必要があります。

インポート・コマンドラインでTRANSPORT_TABLESPACESを指定する場合は、データベース・リンクを指定するためにNETWORK_LINKパラメータも使用する必要があります。データベース・リンクは2つの物理データベース・サーバー間の接続であり、データベース・リンクを使用すると、クライアントから1つの論理データベースとしてこれらのサーバーにアクセスできます。オブジェクト・メタデータはデータベース・リンクを使用してソース(NETWORK_LINKによって指定されるデータベース)からエクスポートされ、ターゲット(impdpコマンドが発行されるデータベース)に直接インポートされるため、NETWORK_LINKパラメータが必要となります。この処理にはダンプ・ファイルは関連しません。また、実際のデータがある場所をインポートが認識できるように、TRANSPORT_DATAFILESパラメータも指定する必要があります(実際のデータは、他の手段を使用した別の操作でターゲットにコピーされます)。


注意:

トランスポータブル表領域モード・エクスポートによって生成されたダンプ・ファイル・セットがすでにある場合、そのダンプ・ファイルのトランスポータブル・モード・インポートを実行できますが、この場合TRANSPORT_TABLESPACESまたはNETWORK_LINKを指定しません。指定するとエラーが発生します。かわりに、(メタデータを含んでいる)ダンプ・ファイルとTRANSPORT_DATAFILESパラメータを指定します。TRANSPORT_DATAFILESパラメータが存在することで、これがトランスポータブル・モード・インポートであることと、実際のデータを取得する場所がインポートに通知されます。

オペレーティング・システムによっては、このパラメータの値を指定するときに引用符とともにエスケープ文字を使用する必要があります。このパラメータはパラメータ・ファイルで指定することをお薦めします。パラメータ・ファイルを使用すると、コマンドラインでは必要なエスケープ文字の数を減らすことができます。

制限事項

  • トランスポータブル表領域をエクスポートした後、それよりも古いリリース・レベルのデータベースにインポートすることはできません。インポート先のターゲット・データベースのリリース・レベルは、ソース・データベース以上である必要があります。

  • TRANSPORT_TABLESPACESパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。

  • トランスポータブル・モードは、暗号化された列をサポートしていません。

  • トランスポータブル表領域のジョブでは、Data Pump ImportのACCESS_METHODパラメータはサポートされません。

次の例では、source_database_linkを有効なデータベース・リンクの名前に置き換えます。また、この例では、tbs6.dbfというデータ・ファイルが、ソース・データベースからローカル・システムにすでにコピーされているものとします。次の内容のパラメータ・ファイルtablespaces.parを作成したとします。

DIRECTORY=dpump_dir1
NETWORK_LINK=source_database_link
TRANSPORT_TABLESPACES=tbs_6
TRANSPORT_FULL_CHECK=NO
TRANSPORT_DATAFILES='user01/data/tbs6.dbf'

次のコマンドを発行します。

> impdp hr PARFILE=tablespaces.par

TRANSPORTABLE

デフォルト: NEVER

用途

特定の表、パーティションおよびサブパーティションのメタデータのみをインポートするために、表モードのエクスポート(TABLESパラメータで指定)中にトランスポータブル・オプションを使用する必要があるかどうかを指定します。

構文および説明

TRANSPORTABLE = [ALWAYS | NEVER]

使用可能な値の定義は、次のとおりです。

ALWAYS: インポート・ジョブでトランスポータブル・オプションを使用するように指定します。トランスポータブルが使用できない場合、ジョブは失敗します。トランスポータブル・オプションを使用すると、TABLESパラメータで指定した表、パーティションまたはサブパーティションのメタデータのみがインポートされます。実際のデータ・ファイルをターゲット・データベースにコピーする必要があります。詳細は、「データ・ファイル・コピーを使用したデータ移動」を参照してください。

NEVER: インポート・ジョブでトランスポータブル・オプションではなくダイレクト・パスまたは外部表による方法を使用してデータをロードするように指示します。これがデフォルトです。

表のパーティションのサブセットのみをインポートし、TRANSPORTABLE=ALWAYSパラメータを使用すると、それぞれのパーティションが非パーティション表になります。

表のパーティションのサブセットのみをインポートし、TRANSPORTABLEパラメータを使用しない場合、またはそのパラメータが NEVERに設定されている場合(デフォルト)は、次のようになります。

  • PARTITION_OPTIONS=DEPARTITIONを使用している場合は、それぞれのパーティションが、非パーティション表として作成されます。

  • PARTITION_OPTIONS使用していない場合は、完全な表が作成されます。つまり、完全な表内のすべてのメタデータが、ソース上での表定義と同じになるようにターゲット・システム上に存在します。ただし、指定されたパーティション用のデータのみが表に挿入されます。

制限事項

  • インポートのTRANSPORTABLEパラメータは、NETWORK_LINKパラメータも指定されている場合のみ有効です。

  • TRANSPORTABLEパラメータは、表モード・インポートでのみ有効です(表はパーティション化またはサブパーティション化されている必要はありません)。

  • トランスポータブル・インポートを実行するユーザーでは、ソース・データベースでDATAPUMP_EXP_FULL_DATABASEロール、ターゲット・データベースでDATAPUMP_IMP_FULL_DATABASEロールが必要になります。

  • TRANSPORTABLEパラメータをすべて使用するには、COMPATIBLE初期化パラメータを11.0.0以上に設定する必要があります。

次に、ネットワーク・リンク・インポート中にTRANSPORTABLEパラメータを使用した例を示します。

> impdp system TABLES=hr.sales TRANSPORTABLE=ALWAYS
  DIRECTORY=dpump_dir1 NETWORK_LINK=dbs1 PARTITION_OPTIONS=DEPARTITION
  TRANSPORT_DATAFILES=datafile_name 

VERSION

デフォルト: COMPATIBLE

用途

インポートするデータベース・オブジェクトのバージョンを指定します(つまり、指定されたリリースと互換性のあるデータベース・オブジェクトおよび属性のみがインポートされます)。なお、これは、10.1より前のリリースのOracle Databaseでデータ・ポンプ・インポートが使用可能ということではありません。データ・ポンプ・インポートは、Oracle Database 10gリリース1(10.1)以降でのみ動作します。VERSIONパラメータを使用して可能になるのは、インポートするオブジェクトのバージョンの識別のみです。

構文および説明

VERSION=[COMPATIBLE | LATEST | version_string]

このパラメータは、ソース・システムのリリースより古い互換リリースのOracle Databaseが稼働しているターゲット・システムのロードに使用できます。指定したリリースと互換性のないソース・システム上のデータベース・オブジェクトまたは属性はターゲットに移動されません。たとえば、指定したリリースではサポートされていない新しいデータ型を含む表はインポートされません。このパラメータの有効な値は次のとおりです。

  • COMPATIBLE: デフォルト値。メタデータのバージョンは、データベースの互換性レベルに対応します。データベースの互換性は、9.2.0以上に設定する必要があります。

  • LATEST: メタデータのバージョンは、データベースのリリースに対応します。

  • version_string: 特定のデータベース・リリース(11.2.0など)。Oracle Database 11gの場合、この値は9.2.0以上である必要があります。

次に、VERSIONパラメータの使用例を示します。この例では、ExportのFULLパラメータで示した例を実行して、expfull.dmpダンプ・ファイルを作成できます。詳細は、「FULL」を参照してください。

> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp TABLES=employees
VERSION=LATEST

インポート・ユーティリティの対話方式コマンド・モードで使用可能なコマンド

対話方式コマンド・モードでは、現行のジョブは継続して続行されますが、端末へのロギングは一時停止され、インポート・プロンプト(Import>)が表示されます。

対話方式コマンド・モードを開始するには、次のいずれかの方法を使用します。

  • 接続されたクライアントから、[Ctrl]を押しながら[C]を押します。

  • ジョブを実行している端末以外の端末から、ATTACHパラメータを使用してジョブに接続します。この機能は、ある場所で開始したジョブを、後で別の場所から確認する場合に有効です。

表3-2に、現行のジョブに対して対話方式コマンド・モードでデータ・ポンプ・インポート・プロンプトから実行できる操作を示します。

表3-2 データ・ポンプ・インポートの対話方式コマンド・モードでサポートされているコマンド

操作 使用するコマンド

対話方式コマンド・モードを終了する。

CONTINUE_CLIENT


現行のジョブは続行したままインポート・クライアント・セッションを停止する。

EXIT_CLIENT


使用可能なコマンドの概要を表示する。

HELP


現在接続中のすべてのクライアント・セッションを切断し、現行のジョブを停止する。

KILL_JOB


現行のジョブに対するアクティブなワーカー・プロセスの数を増減する。このコマンドは、Oracle Database Enterprise Editionでのみ使用可能です。

PARALLEL


接続している停止ジョブを再開する。

START_JOB


現行のジョブの詳細な状態を表示する。

STATUS


現行のジョブを停止する。

STOP_JOB



次の項では、データ・ポンプ・インポートの対話方式コマンド・モードで使用可能なコマンドについて説明します。

CONTINUE_CLIENT

用途

モードを、対話方式コマンド・モードからロギング・モードに変更します。

構文および説明

CONTINUE_CLIENT

ロギング・モードでは、ジョブの状態が端末に継続的に出力されます。ジョブが現在停止している場合、CONTINUE_CLIENTを指定すると、クライアントがジョブの開始を試みます。

Import> CONTINUE_CLIENT

EXIT_CLIENT

用途

インポート・クライアント・セッションを停止し、インポート・ユーティリティを終了して、端末へのロギングを中断します。ただし、現行のジョブの実行は続行します。

構文および説明

EXIT_CLIENT

EXIT_CLIENTでは、ジョブが実行されたままになるため、ジョブがまだ「実行中」または「停止」状態になっている場合は、後でこのジョブに接続できます。ジョブの状態を確認するには、ジョブのログ・ファイルを監視するか、USER_DATAPUMP_JOBSビューまたはV$SESSION_LONGOPSビューを問い合せることができます。

Import> EXIT_CLIENT

HELP

用途

対話方式コマンド・モードで使用可能なデータ・ポンプ・インポート・コマンドの情報を表示します

構文および説明

HELP

対話方式コマンド・モードで使用可能なコマンドの情報を表示します。

Import> HELP

KILL_JOB

用途

現在接続中のすべてのクライアント・セッションを切断してから、現行のジョブを停止します。インポート・ユーティリティを終了し、端末プロンプトに戻します。

構文および説明

KILL_JOB

KILL_JOBを使用して中断されたジョブは、再開できません。接続中のすべてのクライアント(KILL_JOBコマンドを発行しているクライアントを含む)は、現在のユーザーがジョブを停止しているという警告を受け取った後、切断されます。すべてのクライアントが切断されると、ジョブのプロセス構造が即時に停止し、マスター表およびダンプ・ファイルが削除されます。ログ・ファイルは、削除されません。

Import> KILL_JOB

PARALLEL

用途

現行のジョブに対してアクティブなワーカー・プロセスまたはPQスレーブ(あるいはその両方)の数を増減できます。

構文および説明

PARALLEL=integer

PARALLELは、コマンドライン・パラメータおよび対話方式モードのパラメータとして使用可能です。必要な数のパラレル処理を設定できます。増加処理は、リソースが十分にありパラレル化を必要とする作業量が十分にある場合は、即時に実行されます。減少処理は、既存のプロセスが現行のタスクを終了してから実行されます。整数値を小さくすると、ワーカーはアイドル状態になりますが、ジョブが終了するまで削除はされません。


参照:

並列度の詳細は、「PARALLEL」を参照してください。

制限事項

  • このパラメータは、Oracle Database 11gのEnterprise Editionでのみ有効です。

Import> PARALLEL=10

START_JOB

用途

接続している現行のジョブを開始します。

構文および説明

START_JOB[=SKIP_CURRENT=YES]

START_JOBコマンドは、(現在実行できない)接続中のジョブを再開します。ダンプ・ファイル・セットおよびマスター表が元のまま保持されている場合は、予期しない障害またはSTOP_JOBコマンドの発行後にデータの損失や破損なしにジョブが再開されます。

SKIP_CURRENTオプションは、以前一部のDDL文が失敗したために再開に失敗したジョブを再開できます。失敗する文はスキップされ、ジョブは次の項目から再開されます。

SQLFILEジョブもトランスポータブル表領域モードでのインポートも再開できません。

Import> START_JOB

STATUS

用途

ジョブの累積的な状態、現行の操作の説明および推定完了率を表示します。ロギング・モードの状態を表示する間隔を再設定することもできます。

構文および説明

STATUS[=integer]

ロギング・モードでのこの状態の表示頻度を秒単位で指定できるオプションがあります。値を入力しなかった場合またはデフォルト値の0を使用した場合は、状態の定期表示はオフになり、状態は1回のみ表示されます。

この状態情報は、標準出力デバイスのみに書き込まれ、ログ・ファイルには(使用可能な場合でも)書き込まれません。

次に、現行のジョブの状態を表示し、ロギング・モードの表示間隔を2分(120秒)に変更する例を示します。

Import> STATUS=120

STOP_JOB

用途

現行のジョブを即時にまたは手順に従って停止し、インポート・ユーティリティを終了します。

構文および説明

STOP_JOB[=IMMEDIATE]

STOP_JOBコマンド発行時または発行後にマスター表およびダンプ・ファイル・セットに障害が発生していない場合は、そのジョブに接続し、START_JOBコマンドを使用して再開できます。

手順に従って停止する場合は、関連する値を指定しないでSTOP_JOBを使用します。確認を要求する警告が発行されます。手順に従った停止では、ワーカー・プロセスで現行のタスクが終了した後、ジョブが停止されます。

即時に停止するには、STOP_JOB=IMMEDIATEを指定します。確認を要求する警告が発行されます。接続中のすべてのクライアント(STOP_JOBコマンドを発行しているクライアントを含む)は、現在のユーザーがジョブを停止および切断中であるという警告を受け取ります。すべてのクライアントが切断されると、ジョブのプロセス構造が即時に停止されます。マスター・プロセスは、ワーカー・プロセスで現行のタスクが終了するまで待機はしません。STOP_JOB=IMMEDIATEを指定した場合、データ破損やデータ損失の危険性はありません。ただし、停止時に完了しなかった一部のタスクは、再開時に再実行する必要があります。

Import> STOP_JOB=IMMEDIATE

データ・ポンプ・インポートの使用例

この項では、データ・ポンプ・インポートの使用例を示します。

これらの例を正しく使用するために役立つ情報については、「インポート・パラメータの使用例」を参照してください。

データのみ表モード・インポートの実行

例3-1に、employees表のデータのみ表モード・インポートの実行方法を示します。例2-1で作成されたダンプ・ファイルを使用します。

例3-1 データのみ表モード・インポートの実行

> impdp hr TABLES=employees CONTENT=DATA_ONLY DUMPFILE=dpump_dir1:table.dmp
NOLOGFILE=YES

CONTENT=DATA_ONLYパラメータは、すべてのデータベース・オブジェクト定義(メタデータ)をフィルタから除外します。表の行データのみロードされます。

スキーマ・モード・インポートの実行

例3-2に、例2-4で作成したダンプ・ファイル・セットのスキーマ・モード・インポートを示します。

例3-2 スキーマ・モード・インポートの実行

> impdp hr SCHEMAS=hr DIRECTORY=dpump_dir1 DUMPFILE=expschema.dmp
 EXCLUDE=CONSTRAINT,REF_CONSTRAINT,INDEX TABLE_EXISTS_ACTION=REPLACE

EXCLUDEパラメータは、インポートしたメタデータをフィルタします。指定したインポート・モードでは、EXCLUDE文に指定されたオブジェクトを除き、ソースに含まれるすべてのオブジェクトおよびその依存オブジェクトが含まれます。オブジェクトが除外されると、そのオブジェクトのすべての依存オブジェクトも除外されます。TABLE_EXISTS_ACTION=REPLACEパラメータでは、表がすでに存在する場合は削除し、ダンプ・ファイルの内容でその表を再作成してロードするように指定します。

ネットワーク・モード・インポートの実行

例3-3では、ソースが、NETWORK_LINKパラメータで指定されたデータベースであるネットワーク・モード・インポートを実行します。

例3-3 スキーマのネットワーク・モード・インポート

> impdp hr TABLES=employees REMAP_SCHEMA=hr:scott DIRECTORY=dpump_dir1
NETWORK_LINK=dblink

この例では、hrスキーマからscottスキーマへemployees表をインポートします。dblinkは、ターゲット・データベースとは異なるソース・データベースを示します。

スキーマを再マップするには、ユーザーhrに、ローカル・データベースのDATAPUMP_IMP_FULL_DATABASEロールおよびソース・データベースのDATAPUMP_EXP_FULL_DATABASEロールが必要です。

REMAP_SCHEMAは、ソース・スキーマにあるすべてのオブジェクトをターゲット・スキーマにロードします。


参照:

データベース・リンクの詳細は、「NETWORK_LINK」を参照してください。

データ・ポンプ・インポートの構文図

この項では、データ・ポンプ・インポートの構文図を示します。これらの構文図では、標準SQL構文の表記法を使用します。SQL構文の表記法の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

ImpInit

impinit.gifの説明が続きます。
図impinit.gifの説明

ImpStart

impstart.gifの説明が続きます。
図impstart.gifの説明

ImpModes

impmodes.gifの説明が続きます。
図impmodes.gifの説明

ImpOpts

impopts.gifの説明が続きます。
図impopts.gifの説明

ImpFilter

impfilter.gifの説明が続きます。
図impfilter.gifの説明

ImpRacOpt

impracopt.gifの説明が続きます。
図impracopt.gifの説明

ImpRemap

impremap.gifの説明が続きます。
図impremap.gifの説明

ImpFileOpts

impfileopts.gifの説明が続きます。
図impfileopts.gifの説明

ImpNetworkOpts

impnetopts.gifの説明が続きます。
図impnetopts.gifの説明

ImpDynOpts

impdynopts.gifの説明が続きます。
図impdynopts.gifの説明

ImpDiagnostics

impdiagnostics.gifの説明が続きます。
図impdiagnostics.gifの説明