今天一同事向我反映说expdp无法导出,有报错:
$> expdp "'/ as sysdba'" directory=DUMP_DIR dumpfile=eseal.dump schemas=ESEAL,ESCHECKER logfile=eseal.dump.expdp.log
Export: Release 10.2.0.5.0 - 64bit Production on Monday, 23 July, 2012 17:34:45
Copyright (c) 2003, 2007, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 536
ORA-29283: invalid file operation
一开始怀疑可能DUMP_DIR的路径或权限有问题,查了一下,目录确实存在的,权限也正确,就是不能导出。将DUMP_DIR重建,居然好了,导出一点问题都没有! 怪哉 !于是查看同事创建DUMP_DIR的命令,终于发现了问题所在。同事创建DUMP_DIR的命令是:
SQL> create directory DUMP_DIR as '/u01/dump
2 ';
也就是说他在路径中多了一个换行符! 难怪会报Unable to open the log file错误。
这些都是工作中的小细节,但是就是这些小细节可能导致一些很奇怪很棘手的问题,甚至是灾难。所以说任何事情都不能马虎,还得细心再细心,尤其是做DBA的。
: