這就存在從Oracle數據庫的低版本移植到高版本和從Oracle數據庫的高版本移植到低版本的問題,甚至包括系統平臺的遷移如從Windows NT系統遷移到Unix系統。利用Oracle導入/導出工具(Export/Import)能比較方便實現上述移植操作。
Oracle導入/導出工具(Export/Import)主要是用來對數據庫進行邏輯備份,利用Export導出數據庫的轉儲二進制文件作為數據庫Import輸入從而達到移植的目的。
有二個規則可以參考:
規則一:從Oracle 低版本的Export數據可以Import到Oracle高版本中,但限于Oracle的相鄰版本,如從Oracle 7 到 Oracle 8。對于兩個不相鄰版本間進行轉換,如從Oracle 6 到 Oracle 8,則應先將數據輸入到中間版本—Oracle 7,再從中間數據庫轉入更高版本。
規則二:Oracle的Export/Import工具只能連接到擁有更高或者一樣的Export/Import版本的數據庫。如Oracle 8.0.5的Export/Import(版本8.0.5.0.0)可連接到Oracle 8.1.6數據庫(版本8.1.6.0.0);高版本的Export導出來的轉儲文件,低版本的Import讀不了;低版本的Export導出來的轉儲文件,高版本的Import可以進行讀取。
利用上面兩個規則,下面就本人在為一單位用Oracle的導入/導出工具(Export/Import)進行此種移植碰到的問題,提出來與大家分享,希望能起到拋磚引玉的作用。
此單位擁有Oracle數據庫版本有Oracle 8.1.6 For NT、Oracle 8.0.5 For NT、Oracle 8.0.4 For Digital Unix、Oracle 7.3 For NT。
考慮到Oracle 8.0.4 For Digital Unix運行在小型機上、單位的備份系統也是針對此小型機,決定將Oracle 8.1.6 For NT、Oracle 8.0.5 For NT、Oracle 7.3 For NT的數據庫都移植到Oracle 8.0.4 For Digital Unix上。
1、Oracle 8.0.5 For NT移植
因版本相差甚小,開始直接用Oracle8.0.5的exp80導出數據庫的轉儲文件,然后用FTP(binary傳輸模式)直接上傳至Oracle 8.0.4 所在的小型機,再用Oracle 8.0.4的imp導入,一直有字符集的問題,即存有漢字的字段顯示的都是”??????”, 移植失敗。后發現,在Oracle8.0.5服務器上直接用Oracle8.0.5的imp80對exp80導出的轉儲文件進行遠程導入,字符集的問題解決,移植成功。
對于使用Oracle 8.0.4 For Digital Unix的用戶,提醒一句,最好不要用Oracle 8.0.4 For Digital Unix的exp、imp工具做備份,而應用此版本的Windows客戶端程序exp80、imp80。本人曾做過實驗:在Oracle 8.0.4 for Digital UNIN數據庫上新建一用戶(user)和一個表格(table)通過sql plus客戶端在表格的列中插入一些中文行,提交后,用exp 數據導出,再用imp數據導入,用sql plus客戶端查看,表中的中文值顯示為”???”)。
2、Oracle 7.3 移植
直接用Oracle7.3的export導出數據庫的轉儲文件,拷至Oracle8.0.5服務器,然后用Oracle8.0.5服務器的imp80直接導入至Oracle 8.0.5數據庫。此移植就變成了Oracle 8.0.5 For NT移植至Oracle 8.0.4 For Digital Unix的移植。
延伸閱讀
文章來源于領測軟件測試網 http://www.kjueaiud.com/