impdp
を使用してバックアップをインポートしています。しかし、デフォルトのディレクトリダンプファイルを変更したいです。
$ impdp system/password@$Oracle_SID schemas=USER_SCHEMA dumpfile=mydumpfile.dmp logfile=impdpmydumpfile.log
Import: Release 11.2.0.3.0 - Production on Mon Mar 16 09:32:05 2015
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
Connected to: Oracle Database 11g Release 11.2.0.3.0 - 64bit Production
ORA-39001: invalid argument value
ORA-39000: bad dump file specification
ORA-31640: unable to open dump file "/u01/app/Oracle/admin/mydatabase/dpdump/mydumpfile.dmp" for read
ORA-27037: unable to obtain file status
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
directory
パラメーター の場合:
impdp system/password@$Oracle_SID schemas=USER_SCHEMA directory=MY_DIR \
dumpfile=mydumpfile.dmp logfile=impdpmydumpfile.log
デフォルトのディレクトリ はDATA_PUMP_DIR
で、おそらくシステムで/u01/app/Oracle/admin/mydatabase/dpdump
に設定されています。
別のディレクトリを使用するには、データベース内で 新しいディレクトリオブジェクトを作成 する必要があります。これは、ファイルを配置するOracleから見えるオペレーティングシステムディレクトリを指し、特権を割り当てます。インポートを行うユーザー。
デフォルトのディレクトリダンプファイルを変更したい。
新しいディレクトリを作成し、それに必要な特権を与えることができます。たとえば:
SQL> CREATE DIRECTORY dmpdir AS '/opt/Oracle';
Directory created.
SQL> GRANT read, write ON DIRECTORY dmpdir TO scott;
Grant succeeded.
新しく作成したディレクトリを使用するには、パラメータとして追加するだけです。
DIRECTORY=dmpdir
Oracleは、10g R2からDATA_PUMP_DIRと呼ばれる使用可能なデフォルトのディレクトリを導入しました。場所を確認するには、dba_directoriesを調べることができます。
SQL> select DIRECTORY_NAME, DIRECTORY_PATH from dba_directories where DIRECTORY_NAME = 'DATA_PUMP_DIR';
DIRECTORY_NAME DIRECTORY_PATH
-------------------- --------------------------------------------------
DATA_PUMP_DIR C:\app\Lalit/admin/orcl/dpdump/
SQL>
dIRECTORYオプションを使用します。
ここのドキュメント: http://docs.Oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL907
DIRECTORY
Default: DATA_PUMP_DIR
Purpose
Specifies the default location in which the import job can find the dump file set and where it should create log and SQL files.
Syntax and Description
DIRECTORY=directory_object
The directory_object is the name of a database directory object (not the file path of an actual directory). Upon installation, privileged users have access to a default directory object named DATA_PUMP_DIR. Users with access to the default DATA_PUMP_DIR directory object do not need to use the DIRECTORY parameter at all.
A directory object specified on the DUMPFILE, LOGFILE, or SQLFILE parameter overrides any directory object that you specify for the DIRECTORY parameter. You must have Read access to the directory used for the dump file set and Write access to the directory used to create the log and SQL files.
Example
The following is an example of using the DIRECTORY parameter. You can create the expfull.dmp dump file used in this example by running the example provided for the Export FULL parameter. See "FULL".
> impdp hr DIRECTORY=dpump_dir1 DUMPFILE=expfull.dmp
LOGFILE=dpump_dir2:expfull.log
This command results in the import job looking for the expfull.dmp dump file in the directory pointed to by the dpump_dir1 directory object. The dpump_dir2 directory object specified on the LOGFILE parameter overrides the DIRECTORY parameter so that the log file is written to dpump_dir2.
次のコマンドを使用して、DATA PUMP DIRECTORYパスを更新できます。
create or replace directory DATA_PUMP_DIR as '/u01/app/Oracle/admin/MYDB/dpdump/';
私にとっては、データベースを運用環境からテスト環境に復元したため、データパスの修正が必要でした。
同じコマンドを使用して、新しいDATA PUMP DIRECTORY
name
およびpath
を作成できます。