環境介紹
老環境新環境
操作系統:redhat5.8 64位redhat6.4 64位
數據庫版本:oracle 10.2.0.4 64位oracle 11.2.0.4 64位
背景:之前有一套老的數據庫rac是基于oracle10g搭建,跑了幾年了。現在前端應用程序準備升級,考慮到前端應用程序使用的新數據庫與老環境的數據庫有一些差異,準備將新環境所用數據庫導入到老環境中去,這里有一個跨版本導入的問題;另外一種方式就是將老環境數據庫升級到與新環境一樣的版本,考慮升級所帶來各種潛在問題以及現場環境等因素。與項目負責人溝通后決定采用第一種方式。現將測試結果記錄如下:
1、在oracle 10g環境中通過exp將11g數據庫導入到本地,報錯如下:
Encountering errors in Export logfile
EXP-00008: Oracle error # encountered
ORA-01455: converting column overflows integer datatype
2、在11g環境中用exp將導出數據,再通過imp user/password@10g遠程的方式導入,報錯如下:
IMP-00015: 由于對象已存在
說明:導入到10g中之前,確認10g沒有任務相關用戶對象,這種方式導致有一些表沒有導入,估計是因為clob字段導致的。
3、在11g環境中用expdp并指定version將數據導出,傳到10g中去,再通過impdp并指定version將數據導入,報錯如下:
expdp user/password directory=impdp_dir dumpfile=file.dmp version=10.2.0.4(要導入到10g中的版本號)
impdp user/password directory=impdp_dir dumpfile=file.dmp version=10.2.0.4
ORA-39139: Data Pump does not support XMLTYPE objects in version 10.2.0.4 TABLE_DATA:"test"."table_name" will be skipped.
說明:這種方式有一張導入時直接跳過,因這張表中沒有數據,直接將創建表的語句在10g中重新執行一下即可。