接触oracle以后,常用到exp/imp命令,有一个问题一直困扰我。
我们在三种不同的平台上安装有数据库:SunOS,Linux,Windows
但是在导入导出过程中常常会出现丢失对象的情况,曾经丢过触发器,程序包。
我怀疑过数据库版本、操作系统平台等原因,还做过枚举实验,但是都没有能找到规律。
不过随着执行成功和失败的次数的增加,我慢慢猜测出一个可能的原因:
exp在SunOS、Linux、Windows上其实是三个不同的二进制程序,源码也不一样;同理imp也有这样的区别。
所以如果想使得导入导出不发生类似错误,必须配套的使用对应的exp和imp,这样应该是一个安全的方法。