如何更改Oracle默认数据泵目录以导入转储文件?

qlvxas9a  于 2023-03-22  发布在  Oracle
关注(0)|答案(5)|浏览(598)

我正在使用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
zengzsys

zengzsys1#

使用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
要使用不同的目录,您(或您的DBA)必须在数据库中使用create a new directory object,它指向您将文件放入的Oracle可见的操作系统目录,并为执行导入的用户分配权限。

brgchamk

brgchamk2#

我想更改默认目录转储文件。
您可以创建一个新的目录并给予它所需的权限,例如:

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>
kfgdxczn

kfgdxczn3#

使用目录选项。
文档位于: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.
yfwxisqw

yfwxisqw4#

可以使用以下命令更新数据泵目录路径,

create or replace directory DATA_PUMP_DIR as '/u01/app/oracle/admin/MYDB/dpdump/';

对于我来说,需要进行数据路径校正,因为我已经将我的数据库从生产环境恢复到测试环境。
可以使用相同的命令创建新的DATA PUMP DIRECTORYnamepath

31moq8wy

31moq8wy5#

这里的问题是DATA_PUMP_DIR的权限不正确。我必须重新创建目录。

相关问题