オリジナルのバージョンはクライアントベース、データ・ポンプはサーバーベースであるため、オリジナルのエクスポートとインポート、およびデータ・ポンプ・エクスポートとデータ・ポンプ・インポートは、ダンプ・ファイルとログ・ファイルの書込み/読取りを行える場所によって異なります。
オリジナルのエクスポートおよびインポートでは、FILE
パラメータとLOG
パラメータを使用して、それぞれダンプ・ファイル名とログ・ファイル名を指定します。これらのファイル名は常にクライアント・システムに対してローカルなファイルを参照し、パスの指定を含めることもできます。
データ・ポンプ・エクスポートおよびデータ・ポンプ・インポートでは、DUMPFILE
パラメータとLOGFILE
パラメータを使用して、それぞれダンプ・ファイル名とログ・ファイル名を指定します。これらのファイル名は常にサーバー・システムに対してローカルなファイルを参照し、パス情報を含めることはできません。かわりに、ディレクトリ・オブジェクトを使用して、パス情報を間接的に指定します。ディレクトリ・オブジェクトによって定義されるパス値は、サーバーからアクセスできる必要があります。ディレクトリ・オブジェクトは、データ・ポンプ・ジョブ用にDIRECTORY
パラメータを使用して指定されます。DUMPFILE
パラメータおよびLOGFILE
パラメータに渡されるファイル名にディレクトリ・オブジェクトを付加することもできます。データ・ポンプを使用する特権ユーザーは、ディレクトリ・オブジェクトがコマンドラインで指定されていない場合に、デフォルト・ディレクトリ・オブジェクトを使用できます。このデフォルトのディレクトリ・オブジェクトDATA_PUMP_DIR
は、インストール時に設定されます。
データ・ポンプのレガシー・モードを有効にし、オリジナルのエクスポートのFILE=
filespec
パラメータまたはLOG=
filespec
パラメータ(あるいはその両方)をコマンドラインに指定すると、次の優先順位ルールで、ファイルの場所が決まります。
注意:
コマンドラインにFILE
パラメータとLOG
パラメータの両方を指定した場合は、優先順位ルールがそれぞれのパラメータに個別に適用されます。
また、オリジナルのエクスポートおよびインポートとデータ・ポンプ・エクスポート、データ・ポンプ・インポートのパラメータが混在する場合は、個別のルールがそれぞれ適用されます。たとえば、次のコマンドを指定したとします。
expdp system FILE=/user/disk/foo.dmp LOGFILE=foo.log DIRECTORY=dpump_dir
この項で説明したとおり、データ・ポンプのレガシー・モードによるファイル管理ルールが、FILE
パラメータに適用されます。通常の(レガシー・モードではない)データ・ポンプのファイル管理ルールは、「ダンプ・ファイル、ログ・ファイルおよびSQLファイルのデフォルトの位置」で説明されているとおりに、LOGFILE
パラメータに適用されます。
パスの位置がファイル指定の一部として指定されると、データ・ポンプはエクスポート・ジョブを実行するスキーマからアクセスでき、そのパスの位置がファイル指定でのパスの位置に一致するディレクトリ・オブジェクトの検索を試行します。そのようなディレクトリ・オブジェクトが見つからないと、エラーが返されます。たとえば、USER_DUMP_FILES
という名前のサーバーベースのディレクトリ・オブジェクトが'/disk1/user1/dumpfiles/'
のパス値とともに定義されていて、このディレクトリ・オブジェクトへの読取り/書込みアクセス権限がhr
スキーマに付与されているとします。次のコマンドを実行すると、データ・ポンプはそのパス値に'/disk1/user1/dumpfiles/'
が含まれ、そのhr
スキーマに読取り/書込みアクセス権限が付与されているサーバーベースのディレクトリ・オブジェクトを探します。
expdp hr FILE=/disk1/user1/dumpfiles/hrdata.dmp
その場合、データ・ポンプはディレクトリ・オブジェクトUSER_DUMP_FILES
を使用します。この例で使用されているパス値'/disk1/user1/dumpfiles/'
は、Oracle Databaseからアクセスできるサーバー・システム上のパスを参照している必要があります。
パスの位置がファイル指定の一部として指定されている場合は、DIRECTORY
パラメータで指定されたディレクトリ・オブジェクトが無視されます。たとえば、次のコマンドを実行すると、データ・ポンプはファイル・パラメータのDPUMP_DIR
ディレクトリ・オブジェクトを使用せず、かわりにそのパス値に'/disk1/user1/dumpfiles/'
が含まれ、そのhr
スキーマに読取り/書込みアクセス権限が付与されているサーバーベースのディレクトリ・オブジェクトを探します。
expdp hr FILE=/disk1/user1/dumpfiles/hrdata.dmp DIRECTORY=dpump_dir
パスの位置がファイル指定の一部として指定されない場合は、DIRECTORY
パラメータに指定されたディレクトリ・オブジェクトが使用されます。たとえば、次のコマンドを実行すると、データ・ポンプはDPUMP_DIR
ディレクトリ・オブジェクト用に定義されたパスの位置をhrdata.dmp
ファイルに適用します。
expdp hr FILE=hrdata.dmp DIRECTORY=dpump_dir
パスの位置がファイル指定の一部として指定されず、DIRECTORY
パラメータにディレクトリ・オブジェクトが指定されていない場合は、データ・ポンプによって次のように動作が順次実行されます。
データ・ポンプはDATA_PUMP_DIR_
schema_name
という形式のディレクトリ・オブジェクトを探します。ここでのschema_name
は、データ・ポンプ・ジョブを実行するスキーマです。たとえば、次のコマンドを実行すると、データ・ポンプはDATA_PUMP_DIR_HR
という名前のサーバーベースのディレクトリ・オブジェクトを探します。
expdp hr FILE=hrdata.dmp
また、hr
スキーマには、このディレクトリ・オブジェクトへの読取り/書込みアクセス権限が付与されている必要があります。そのようなディレクトリ・オブジェクトが存在しないとき、処理は手順bに進みます。
データ・ポンプは、クライアントベースの環境変数DATA_PUMP_DIR
を探します。たとえば、DUMP_FILES1
という名前のサーバーベースのディレクトリ・オブジェクトが定義されていて、hr
スキーマにそのオブジェクトへの読取り/書込みアクセス権限が付与されているとします。その場合は、クライアント・システムで、次のようにDUMP_FILES1
を指すように環境変数DATA_PUMP_DIR
を設定します。
setenv DATA_PUMP_DIR DUMP_FILES1 expdp hr FILE=hrdata.dmp
データ・ポンプは、次にサーバーベースのディレクトリ・オブジェクトDUMP_FILES1
をhrdata.dmp
ファイルに対して使用します。
クライアントベースの環境変数DATA_PUMP_DIR
が存在しないとき、処理は手順cに進みます。
データ・ポンプ・ジョブを実行するスキーマにDBA権限があると、デフォルトのデータ・ポンプ・ディレクトリ・オブジェクトDATA_PUMP_DIR
が使用されます。このデフォルトのディレクトリ・オブジェクトは、インストール時に設定されます。たとえば、次のコマンドを実行すると、データ・ポンプはシステムにDBA権限があるとみなし、デフォルトのDATA_PUMP_DIR
ディレクトリ・オブジェクトを使用しようとします。
expdp system FILE=hrdata.dmp
関連項目:
通常モードのデータ・ポンプ(レガシー・モードではない)でのデータ・ポンプのファイル管理優先順位ルールの詳細は、「ダンプ・ファイル、ログ・ファイルおよびSQLファイルのデフォルトの位置」を参照してください