联系:手机/微信(+86 17813235971) QQ(107644445)
标题:impdp报ORA-00904: "ORIGINAL_OBJECT_NAME": invalid identifier
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
发现问题
impdp导入数据库不成功,一直在报ORA-00904: “ORIGINAL_OBJECT_NAME”: invalid identifier错误
[oracle@back1 backup]$ impdp username/password schemas=center_admin dumpfile=center_admin20120427.dmp > logfile=center_admin20120427.log directory=impdir parallel=10 job_name=center_admin08; Import: Release 11.1.0.6.0 - 64bit Production on Friday, 27 April, 2012 21:35:06 Copyright (c) 2003, 2007, Oracle. All rights reserved. Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.6.0 - 64bit Production With the Partitioning, OLAP, Data Mining and Real Application Testing options ORA-39002: invalid operation ORA-31694: master table "USERNAME"."CENTER_ADMIN08" failed to load/unload ORA-02354: error in exporting/importing data ORA-02373: Error parsing insert statement for table "USERNAME"."CENTER_ADMIN08". ORA-00904: "ORIGINAL_OBJECT_NAME": invalid identifier
分析问题
看到这个错误,我第一个感觉根据ORA-31694,怀疑是没有创建相关用户,或者是该用户无权限权限CENTER_ADMIN08表.等我登陆目标数据库查看时候发现该用户存在,并且已经授予了DBA权限,所以不存在是用户相关问题导致.ORA-02354错误我怀疑是expdp导出来的文件在传输过程中发生意外(如使用ftp传输未使用二进制模式),当我使用md5sum命令检查发现两边一致,证明该文件传输正常.目标端不能检查明显故障,怀疑导出文件本身存在问题检查导出文件日志
[oracle@fcdb2 backup]$ more center_admin20120427.log ;;; Export: Release 11.1.0.7.0 - 64bit Production on Friday, 27 April, 2012 17:32:30 Copyright (c) 2003, 2007, Oracle. All rights reserved. ;;; Connected to: Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production With the Partitioning, Real Application Clusters, OLAP, Data Mining and Real Application Testing options Starting "USERNAME"."CENTER_ADMIN08":USERNAME/**** schemas=center_admin directory=expdir dumpfile=center_admin20120427.dmp er_admin20120427.log parallel=10 job_name=center_admin08 Estimate in progress using BLOCKS method... Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA Total estimation using BLOCKS method: 158.2 GB
发现新大陆,两边的数据库版本不一致,源端版本是11.1.0.7,目标端版本是11.1.0.6.这个时候我对问题的定位是可能版本兼用问题(毕竟是高版本到低版本)或者是bug.先查询datapump版本之间兼容性列表
Version Written by Can be imported into Target: Data Pump database with 10gR1 10gR2 11gR1 11gR2 Dumpfile Set compatibility 10.1.0.x 10.2.0.x 11.1.0.x 11.2.0.x ------------ --------------- ---------- ---------- ---------- ---------- 0.1 10.1.x supported supported supported supported 1.1 10.2.x no supported supported supported 2.1 11.1.x no no supported supported 3.1 11.2.x no no no supported
这里可以看出11.1.0.7和11.1.0.6之间是相互兼容的,不应该会存在上述问题,那么现在对于该问题的解释很可能是bug导致,继续查询资料发现[ID 752374.1]描述的正是该问题.
解决问题
1. Apply 11.1.0.7 Patch:6890831 on the target database. 2. Workaround this issue by re-running an expdp from the 11.1.0.7 database with an additional parameter VERSION=10.2. This will create a new dump file compatible to be imported into 10gR2, which will also import successfully into 11.1.0.6. Unfortunately, please be aware that the new 11g specific features will not be exported if expdp is run from 11.1.0.7 with the parameter VERSION=10.2. If only normal objects and features are involved, this could be a good workaround.
11.1.0.6 DataPump Import Of An 11.1.0.7 Dump Fails With Error ORA-904 ORIGINAL_OBJECT_NAME