如果你正在營造微軟 .NET 網絡而後端運行著 Oracle 數據庫,那麼你應該把後端遷移到 SQL Server。這一問題的核心不在於比較數據庫的性能而是尋求最適合你的工具。在 .NET 體系結構下要回答這兩個問題,答案只有一個,那就是 .Net Server。在這篇文章裡,我們首先探究下為什麼你的網絡中存在 Oracle 服務器,然後討論如何將其遷移到 SQL Server,最後闡述由這一舉措所能獲得的利弊。
系統中的Oracle
如果在你的網絡中存在 Oracle 服務器,你需要搞清楚為什麼需要它的理由 – 誰在使用它,什麼應用程序要用到它,在它上面正運行著什麼應用程序等等。
誰在使用它?
首先你應該搞清楚誰在使用Oracle服務器。否則還沒有得出答案就匆匆搬走服務器很可能會促成大錯。當然,真要這麼做倒也是一種很快就能找出數據庫用戶的方法。但我們還是勸你萬萬不可。
網絡管理員可能有監視或記錄Oracle使用情況的執行過程。開發人員可能要采用當前的服務器開發應用程序。經理們可能要根據數據庫保存的數據得出分析報告或利用 Oracle 後端做出企業決策。而且數據庫的用戶完全可能遍及世界各地。在確定因從 Oracle 到 SQL Server這一遷移過程而受到影響的用戶之時,你必須考慮到以上所有這些可能性。
什麼應用程序要用到它?
現在假設你一個挨一個地問遍了所有的用戶以了解誰在使用 Oracle ?而他們的回答恰恰都是否定的,那麼你接下來就應該查看記錄文件了解哪些工作站正在訪問數據庫。在你檢查這些記錄文件的時候,你可能會發現:不僅僅只有工作站才訪問數據庫,其他服務器也要訪問數據庫。
好,拿起筆來記下正在訪問數據庫的服務器,然後找出這些服務器訪問數據庫的特定應用程序。通過比較數據表內保存的數據和服務器上運行的應用程序即可確定出這類應用程序。
Oracle服務器上在運行什麼應用程序?
既然你已經知道了訪問數據庫的用戶和外部應用程序,現在你就需要找出數據庫服務器自身正在運行的應用程序了。這些應用程序可能是數據庫的存儲過程(以及相應的觸發器、定制數據類型以及安全性設置等)也可能是不在 Oracle 以內運行的獨立應用程序。你尤其得注意添加到服務器之上的 Oracle 開發工具。
遷移到 SQL Server
你永遠都不要沖動地立即撥去Oracle 服務器的電源裝上在 SQL Server。關鍵服務器在遷移的時候一定要三思而後行。為什麼這個過程要專門起個遷移(migration)這名字?還不是因為遷移總不是突然發生的。如果你采取一些簡單的合理步驟,遷移過程就能在沒有任何障礙的情況下實現。
本機應用程序和外部應用程序
遷移應用程序請采取以下步驟:
1. 在網絡中安裝新的 SQL Server。
2. 創建應用程序使用的“設備”和數據表。
3. 禁止應用程序訪問數據庫而實現應用程序的離線。
4. 從 Oracle 拷貝當前數據到 SQL Server。
5. 把所有的應用程序都指向新數據庫。
6. 允許應用程序訪問數據表和設備中的新數據。
考慮SQL
在 SQL Server和 Oracle 之間遷移存在一個要命的問題:它們分別說著 SQL-PL/SQL (Oracle)和Transact-SQL (微軟)這兩種不同的SQL方言。
在大多數情況下,如果你能使用其中一種SQL語言就多半能使用其它的SQL語言。考慮到SQL的函數、操作符、語句等等因素我特意搞了一份SQL程序員參考,這份資料表明了各種DBMS所支持的特性。