存儲過程遷移
『壹』 請問,將數據從SQL SERVER遷移到ORACLE容易嗎
如果是大型應用並且數據量確實非常大推薦直接使用ORACLE,不建議從SQL
SERVER後期遷移,因為遷移的成本是非常高的(包括停機成本,測試,以及承擔BUG的風險等),並不見得會比資料庫之間的差價低。
如果是近TB的資料庫,根據應用要求以及設計復雜程度,遷移可能需要一周甚至一個月,注意遷移並不是簡單的導入導出,需要定製方案、風險評估、測試等,而測試往往是非常麻煩的
一、推薦使用ORACLE:
若是因為價格原因的話可以先選用標准版的ORACLE,價格較之企業版便宜很多而且直接附帶RAC的授權(最高4節點每節點2CPU),性能完全足夠用。當然標准版中沒有分區以及DATAGUARD之類的選項,但即使沒有分區也可以通過分布多個數據文件到不同設備上達到同樣的效果,DATAGUARD應用並不是很多,可以直接使用第三方方案代替(例如HA)。
二、使用SQL
SERVER:
資料庫的遷移是非常麻煩的事情,SQL
SERVER
到ORACLE也不例外。主要有以下幾個問題
1、數據類型差異:
盡管大多數數據類型通用,但仍有專屬數據類型,例如ORACLE的LOG
SEGMENT、ROWNUM偽劣等。這些數據類型有其特殊的定義(如SEGMENT),其他的資料庫中並沒有相應的概念,因此轉換可能很復雜。
2、存儲過程差異:
SQL
SERVER中是用T-SQL,而ORACLE中使用PL/SQL,兩種存儲過程盡管語法相似,但其實完全不同。ORACLE的PL/SQL中的很多功能是與ORACLE的特性相關的,並不是簡單的語法相似就可以通用的。所以存儲過程改寫也是一個主要的問題。
3、其他問題:
主要有性能問題,SCHEMA屬性,存儲屬性等
三、解決辦法:
如果非要使用SQL
SEREVER,那麼需要在設計時注意兼容性問題
1、如非必要,盡量避免使用特殊數據類型,以便於轉換
2、同理,在編寫T-SQL存儲過程時,盡量避免使用一些特有的高級特性,盡量使用通用的語法,這樣很多T-SQL都可以不用重寫
3、SCHEMA的設計:SQL
SERVER中USER與SCHEMA為一對多,而ORACLE中為一對一且USER與SCHEMA同名,因此避免過於復雜的SCHEMA設計方案
4、如有可能,使用第三方的工具進行遷移也可提高效率