ORA-39083 $ oerr ora 39083 39083, 00000, "Object type %s failed to create with error:/n%s/nFailing sql is:/n%s" // *Cause: Examine original error code to determine actual cause // *Action: Original error code will contain more information ORA-01119 oerr ora 01119 01119, 00000, "error in creating database file '%s'" // *Cause: Usually due to not having enough space on the device. // *Action: ORA-27040 oerr ora 27040 27040, 00000, "file create error, unable to create file" // *Cause: create system call returned an error, unable to create file // *Action: verify filename, and permissions
Oracle Database – Enterprise Edition – 版本10.1.0.2 到10.2.0.3 [Release 10.1到 10.2]
Oracle Database – Enterprise Edition – 版本 11.2.0.4 到 11.2.0.4 [Release 11.2]
本文信息适用于任何平台。
该问题可能发生在任何平台。
当使用Data pump 导入来执行完整数据库的导入时
impdp system/******** full=y dumpfile=DPIMPORT:CONPROD.dmplogfile=DPIMPORT:CONPROD_imp_full_2.log job_name=CONPROD_Initial
Processing object type DATABASE_EXPORT/TABLESPACE
ORA-39083: Object type TABLESPACE failed to create with error:
ORA-01119: error in creating database file ‘/db/CONPROD/data/cmundo01.dbf’
ORA-27040: file create error, unable to create file
Linux-x86_64 Error: 2: No such file or directory
Failing sql is:
CREATE UNDO TABLESPACE “CMUNDO” DATAFILE ‘/db/CONPROD/data/cmundo01.dbf’ SIZE 629145600 AUTOEXTEND
当执行完整导入时,内部发出Create Tablespace语句。这是看到这些错误的原因。
要解决该问题,我们需要:
1. 使用sqlfile选项来抽取DDL’s
例如:impdp sys/****** full=y dumpfile=fulldump.dmp sqlfile=import.txt
2. import.txt会包含所有DDL’s ,即会包含create tablespace 语句
3. 使用脚本,在目标数据库中预先创建表空间。如果你需要在不同位置中创建数据文件,更改脚本中的数据文件位置。
4. 现在执行导入。