今天遇到了一个很常见的需求,备份数据库数据。
轻车熟路,用PL/SQL Developer的Tools--Export Tables,选好oracle导出程序的路径和文件导出的路径,点下右下角Export即可。
不过试了好几次,下面的提示栏都已经显示完成了,不过桌面上还是没有dmp文件。
我首先是怀疑是PL/SQL Developer的问题,因为自己这个版本以前看不到job里的东西。所以我试着直接登录数据库使用exp table_name/pwd file=f:\alltable.dmp导出,然后看到了如下错误。
根据网上的资料和总结,分析可能是本地使用的exp导出工具的版本与数据库服务器端exp版本不一致导致。我本地安装的Oracle 版本是Release 11.2.0.1.0,而服务器端安装的Oracle 是Release 10.2.0.4.0。
由于Oracle的imp/exp组件的操作原则为向下兼容,具体规则为:
规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器;规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件);低版本exp出的dmp文件,高版本可以imp(向下兼容);
规则3:从Oracle 低版本Export的数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 10 到 Oracle 11.对于两个不相邻版本间进行转换,如从Oracle 9 到 Oracle 11,则应先将数据输入到中间版本-Oracle 10,再从中间数据库转入更高版本Oracle 11. 所以,以后装本地数据库最好能与服务器上的版本保持一致,避免出现一些不必要的麻烦。