前几天,公司某项目组搭建一套演示应用系统,需要将后台的Oracle数据从一台服务器迁移到另外一套系统。在执行IMPDP导入的过程遭遇下述错误,后经查找Metalink给出解决方法。
-bash-3.2$ impdp directory=mig_dir dumpfile=dms_expdp.dmp logfile=impdp.log schemas=dms Import: Release 10.2.0.5.0 - 64bit Production on Thursday, 10 November, 2011 3:12:56 Copyright (c) 2003, 2007, Oracle. All rights reserved. Username: sys/oracle as sysdba 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-39001: invalid argument value ORA-39000: bad dump file specification ORA-39142: incompatible version number 3.1 in dump file "/home/oracle/mig_dir/dms_expdp.dmp" [oracle@OEL511gR2 mig_dir]$ oerr ora 39142 39142, 00000, "incompatible version number %s in dump file \"%s\"" // *Cause: A dump file was specified for an import operation whose version // number is incompatible with the dump file version of the // Data Pump product currently running on the system. Usually this // message indicates that the dump file was produced by a newer // version of the Data Pump export utility. // *Action: Import this dump file using the Data Pump import utility with // the same version as the export which created the file. [oracle@OEL511gR2 mig_dir]$
ORA-39142的错误是指要导入的dump file中记录的数据库版本与要导入的数据库版本不一致。果不其然,这份导出的dump file是其他同事从一套11.1.0.6.0数据库上EXPDP 导出的,而这套要导入演示系统的数据库版本是10.2.0.5.0。将11g数据库中导出的dump file导入到10g数据库的过程中,就报这个错误了,Metalink ID 553337.1给出了详细的解决方法。
我这里的解决方法是在源库,即11g的数据库上重新以EXPDP加上version=10.2.0.5.0参数重新执行导出,然后在目标库上重新执行上述导入命令,OK!
需要注意的是,经过测试:直接在目标库(10.2.0.5.0)上以IMPDP附带version=11.1.0.6.0参数导入第一份dump file文件是行不通的,依旧会报上述ORA-39142的错!
那么,dump file里包含的数据库版本信息及其它详细信息应该怎么获取呢?我们将在下一篇介绍。
评论 (2)
Rix Chan| 2012年3月5日
很不错,刚刚我导数据就遇到这种问题,从11.2导往10.1版本的。这下有救了,哈哈,谢谢Asher Wong。
Asher| 2012年3月5日
to Rix Chan
写出来的文字能帮助你我就感到很欣慰!
只要能帮助到Oracler,或者是互联网上的任何一个人,我都觉得我的文字存在是有意义的!