SQL Server 資料庫現代化概述

傳統的企業應用程式多數採用三層式的系統架構,所以在遷移到雲端時,除了需要把應用程式進行遷移外,SQL 資料庫的遷移也是非常重要的一環。企業可以按應用場景、需求或目標,透過 IaaS 或 PaaS 的形式,把地端的 SQL Server 及 SQL 資料庫遷移到雲端。若企業應用程式的遷移目標為節省管理及維運成本,以及期望可以利用自動化的方式提升 SQL 資料庫的彈性與擴展性,這類型的遷移普遍會利用 Azure SQL Database ( PaaS ) 服務,把 SQL 資料庫進行現代化。

Azure SQL Database 服務

利用 Azure SQL Database 進行資料庫現代化可以同時提升 SQL 資料庫的可用性、安全性、以及降低升級成本。在 Azure SQL Database 中的補丁、升級、備份皆是由 Microsoft Azure 後台自動完成,使用者幾乎不會感受到反應延遲或停頓。若 Microsoft Azure 數據中心發生災害時,也可以透過現存的備份來復原,大幅降低停機時間。Azure SQL Database 亦預設包含防火牆功能,企業可透過防火牆規則的設定來避免未經授權的數據存取,再配合透明資料加密(TDE)功能,對機密數據進行即時的加解密,為企業重要數據提供最大的保障。針對網路傳輸方面,Azure SQL Database 強制使用了 TLS 加密連線,因此即使傳輸過程中之封包被第三者攔截,也無法得知其資料內容。

圖一、網路封包監測軟體抓取傳輸過程資料,可以看到明碼之資料已被加密

由於 SQL Server 需要耗費大量運算資源,因此以往在地端機房佈署 SQL Server 時,普遍也需要購置較高規格之伺服器設備才可滿足企業的業務需求。利用 Azure SQL Database 服務,可以為企業提供更有彈性的使用與繳費方式,按實際資源使用量付費,從而達優化營運成本的最佳效果。

SQL 資料庫現代化的方式

SQL 資料庫現代化可以通過兩種方式進行:線上遷移 ( Online Migration ) 與離線遷移 ( Offline Migration )
線上遷移 ( Online Migration ):來源資料庫內的資料會持續備份到目標資料庫,直到正式將負載切換至目標資料庫上,所以需要的停機時間也因此較短。 
離線搬移 ( Offline Migration ):來源資料庫內的資料會以一次性的方式備份到目標資料庫上,且一但開始轉移就無法對來源資料庫進行其他操作,故需停機之時間較長。

來源資料庫/目標資料庫

Azure SQL Managed Instance

Azure SQL Virtual Machine

Azure SQL Database

Microsoft SQL Server

支援線上/離線方式

支援線上/離線方式

支援離線方式


Azure SQL Database 遷移實作
  • 來源資料庫:SQL Server 2012
  • 目標資料庫:Azure SQL Database
1. 在可連接來源與目標資料庫之伺服器上安裝 Data Migration Assistant


2. 創建評估專案(非必要)


2.1 選擇來源資料庫、認證方法並勾選「Trust server certificate」,再點選「Connect」。


2.2 選擇欲評估的資料庫,並點選「Add」。


2.3 點選「Start Assessment」。


2.4 檢視評估結果,再點選「Upload to Azure Migrate」


2.5 登入欲上傳評估結果之 Azure 帳號,再點選「Connect」。


2.6 選擇訂閱帳戶及 Azure Migrate Project(若先前未創建需手動創建),再點選「Upload」。


3. 點選加號新增遷移專案,並選擇來源與目標資料庫種類,以及欲遷移之範圍,再點選「Create」。


3.1 選擇來源資料庫進行連接,再點選「Connect」。


3.2 選擇欲遷移之資料庫,點選「Next」。


3.3 輸入 Azure SQL Database 之 Server name 以及適用之認證方式,最後點選「Connect」


3.4 選取欲作為目標的資料庫,再點選「Next」。

3.5 勾選欲遷移 Schema 的 Tables,再點選「Generate SQL script」。工具會自動產生建立 Schema 的語法。


3.6 點選「Deploy schema」在目標資料庫上佈署 Schema


3.7 Schema 佈署完成後就可以點選「Migrate data」開始遷移資料。

3.8 選取欲轉移資料之Tables,再點選「Start data migration」。


3.9 等待資料遷移,根據資料量的多寡可能需要長時間等待。


3.10 遷移完成