impdp报ORA-00904: "ORIGINAL_OBJECT_NAME": invalid identifier

联系:手机/微信(+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.

One thought on “impdp报ORA-00904: "ORIGINAL_OBJECT_NAME": invalid identifier

  1. 11.1.0.6 DataPump Import Of An 11.1.0.7 Dump Fails With Error ORA-904 ORIGINAL_OBJECT_NAME

    Applies to:
    Oracle Server - Enterprise Edition - Version: 11.1.0.6 to 11.1.0.7 - Release: 11.1 to 11.1
    Oracle Server - Enterprise Edition - Version: 11.1.0.6 to 11.1.0.7   [Release: 11.1 to 11.1]
    Information in this document applies to any platform.
    ***Checked for relevance on 08-DEC-2011***
    Symptoms
    After an 11.1.0.7 DataPump export from an 11.1.0.7 database, 11.1.0.6 DataPump import of the
    previously created dump file into an 11.1.0.6 database systematically fails with the following errors:
    ORA-39002: invalid operation
    ORA-31694: master table "SYSTEM"."SYS_IMPORT_FULL_01" failed to load/unload
    ORA-02354: error in exporting/importing data
    ORA-02373: Error parsing insert statement for table "SYSTEM"."SYS_IMPORT_FULL_01".
    ORA-00904: "ORIGINAL_OBJECT_NAME": invalid identifier
    Changes
    Applied the 11.1.0.7 patchset on the source database.
    Cause
    This is caused by Bug:7590679. The column name ORIGINAL_TABLE_NAME was introduced in 11.1.0.7
    by the fix for unpublished Bug:5955150.
    This issue reproduces when importing an 11.1.0.7 dump file into 11.1.0.6.
    Solution
    Upgrade both source and target on 11.1.0.7 will avoid this issue.
    To solve this error, we suggest to:
    1. Apply 11.1.0.7 Patch:6890831 on the target database.
    Or:
    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.
    

发表评论

邮箱地址不会被公开。 必填项已用*标注

14 − 14 =