exp/imp导入导出版本问题和ORA-6550报错
前几天有位同事问到exp/imp是否涉及到版本问题,我认为,只要是软件,都会涉及到高低版本的兼容性问题,Oracle也是软件,自然也是这样。
简单的实验:
exp工具版本:10g
导出的source数据库版本:9i
bash-4.1$ exp x/x@x tables=T file=/home/x/t.dmp
Export: Release 10.2.0.4.0 - Production on Wed Dec 11 15:17:05 2013
Copyright (c) 1982, 2007, Oracle. All rights reserved.
EXP-00056: ORACLE error 6550 encountered
ORA-06550: line 1, column 41:
PLS-00302: component 'SET_NO_OUTLINES' must be declared
ORA-06550: line 1, column 15:
PL/SQL: Statement ignored
EXP-00000: Export terminated unsuccessfully
从报错看,好像是有个组件未定义,导致导出失败。
从MOS上看到一篇文章,有个介绍exp/imp版本兼容性问题的经典总结:
Export client compatibility:
Always use a version of the EXPORT utility that is equal to the lowest version of either the source or the target database.
导出客户端兼容性:建议使用和源数据库或目标数据库中最低版本一致的EXPORT工具版本。
Import client compatibility:
Always use a version of the IMPORT utility that is equal to the version of the target database.
导入客户端兼容性:建议使用和目标数据库版本一致的IMPORT工具版本。
这里很明显为我们实际中需要exp/imp导入导出指明了方向。