acf*_*tas 10 database oracle impdp
我正在使用impdp导入备份.但我想要更改默认目录dumpfile.
$ 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
Run Code Online (Sandbox Code Playgroud)
Ale*_*ole 13
随着该directory参数:
impdp system/password@$ORACLE_SID schemas=USER_SCHEMA directory=MY_DIR \
dumpfile=mydumpfile.dmp logfile=impdpmydumpfile.log
Run Code Online (Sandbox Code Playgroud)
在默认目录是DATA_PUMP_DIR,这大概是设置为/u01/app/oracle/admin/mydatabase/dpdump你的系统上.
要使用不同的目录,您(或您的DBA)必须在数据库中创建一个新的目录对象,该对象指向您放入文件的Oracle可见操作系统目录,并为执行导入的用户分配权限.
我想更改默认目录转储文件。
您可以创建一个新目录并为其提供必需的特权,例如:
SQL> CREATE DIRECTORY dmpdir AS '/opt/oracle';
Directory created.
SQL> GRANT read, write ON DIRECTORY dmpdir TO scott;
Grant succeeded.
Run Code Online (Sandbox Code Playgroud)
要使用新创建的目录,只需将其添加为参数即可:
DIRECTORY=dmpdir
Run Code Online (Sandbox Code Playgroud)
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>
Run Code Online (Sandbox Code Playgroud)
您可以使用以下命令来更新 DATA PUMP DIRECTORY 路径,
create or replace directory DATA_PUMP_DIR as '/u01/app/oracle/admin/MYDB/dpdump/';
Run Code Online (Sandbox Code Playgroud)
对于我来说,需要更正数据路径,因为我已将数据库从生产环境恢复到测试环境。
相同的命令可用于创建新的DATA PUMP DIRECTORY name和path.