熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

.NET框架下從Oracle到SQL Server的遷移

2013-11-13 15:27:22  來源: Oracle 

  如果你正在營造微軟 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)這名字?還不是因為遷移總不是突然發生的如果你采取一些簡單的合理步驟遷移過程就能在沒有任何障礙的情況下實現
  
  本機應用程序和外部應用程序
  
  遷移應用程序請采取以下步驟
   在網絡中安裝新的 SQL Server
  
   創建應用程序使用的設備和數據表
  
   禁止應用程序訪問數據庫而實現應用程序的離線
  
   從 Oracle 拷貝當前數據到 SQL Server
  
   把所有的應用程序都指向新數據庫
  
   允許應用程序訪問數據表和設備中的新數據
  
  考慮SQL
  在 SQL Server和 Oracle 之間遷移存在一個要命的問題它們分別說著 SQLPL/SQL (Oracle)和TransactSQL (微軟)這兩種不同的SQL方言
  
  在大多數情況下如果你能使用其中一種SQL語言就多半能使用其它的SQL語言考慮到SQL的函數操作符語句等等因素我特意搞了一份SQL程序員參考這份資料表明了各種DBMS所支持的特性當然如果 SQL 產品的這些美國供應商們都老老實實遵守美國標准SQL(ANSISQL)哪裡還會產生這樣大的問題!
  
  此外你你還可能會遭遇以下的問題
  Oracle 的dual表——在 SQL Server上你可能會遇到select x;這樣的語句而在 Oracle上這條語句就必須被轉換成select x from dual; dual是一種由Oracle生成的系統表除了這個 SQL 語法問題之外你還不能把這個表拷貝到你的 SQL Server上因為它是一個 Oracle 系統表
  Truncation 兩種DBMS 都支持FLOOR和ROUND函數但是 Oracle 還多了個 TRUNC 函數如果你的 Oracle 系統用到了TRUNC 函數那麼牽扯之處就需要你重新編輯了——可能得想法換成FLOOE或ROUND函數
  ConcatenationSQL Server 不支持 ANSI || 連接方法但是 SQL Server 卻可以支持了現在兩種數據庫都都采用加號(+)表示連接但最好還是把這個符號用在算術運算上吧!
  就看你到底用的是兩種服務器的具體版本了有關 SQL 語言的遷移問題幾乎總是會突然在沒有預料到的情況下冒出來
  
  放棄Oracle 的業務案例
  這種數據庫的遷移並不是簡單的感情游戲選擇微軟產品而非 Oracle 是受到業務案例支持的Oracle 在法庭和宣傳戰中為了打敗微軟投入了相當多的資源然而從經濟性的角度來看Oracle並不具更高的性價比此外Oracle 只有一種核心產品相比微軟還是底氣不足復雜的銷售過程之外你最好得找個更牛氣點的公司提供支持這個公司應該健康向上產品受到普遍歡迎在遭遇更強大的對手之前得保證這家公司至少在數年之內非常強大
  
  遷移到 SQL Server又能獲得什麼呢?
  首先你獲得的系統同你的網絡體系結構保持了高度的一致性你無需專人負責 UNIX 系統的管理為 DBMS 量身打造的管理工具能以最佳狀態同那些網絡操作系統工具協同工作
  
  其次系統實現了對 NET 應用程序的內在支持NET體系結構並不要求你一定要使用 SQL Server但這種服務器是缺省的數據庫用於Oracle 的 ODBC 驅動程序當然也不錯但它們總是一個可能的故障點
  
  第三NET網絡下采用Oracle的成本比采用SQL Server更高當你購買更多的WinK 服務器許可證以及VSNET和Office許可證時你可能會得到折扣
  
  最後就算你單獨購買了 SQL Server系統也可能比Oracle來得便宜最近購買Oracle 許可證在討價還價的時候還難得像拔牙似的我記得曾問過一個銷售代表價格他竟然說你買得起嗎?
  
  小結
  如果你正在營造NET網絡采用SQL Server作為你的DBMS是理智的原因在於它正是微軟 NET Server應用套件的核心組成部分從平台之間的遷移是一個必須仔細考慮周密部署的重要過程在轉換平台之前你更應該擁有一個統一有效易於管理和可靠的NET基礎

From:http://tw.wingwit.com/Article/program/Oracle/201311/16739.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.