移轉概觀:從 SQL Server 到 Azure VM 上的 SQL Server
了解將 SQL Server 移轉至 Azure 虛擬機器 (VM) 上的 SQL Server 時所用的不同移轉策略。
您可以移轉在內部部署或下列項目上執行的 SQL Server:
- 虛擬機器上的 SQL Server
- Amazon Elastic Compute Cloud (Amazon EC2)
- Amazon Relational Database Service (Amazon RDS)
- Google Compute Engine
如需其他移轉指南,請參閱資料庫移轉。
概觀
當您想要以作業系統控制使用熟悉的 SQL Server 環境,並想要利用雲端提供的功能 (例如內建的 VM 高可用性、自動備份和自動修補) 時,請移轉到Azure 虛擬機器 (VM) 上的 SQL Server。
藉由將您自己的授權提供給 Azure Hybrid Benefit 授權模型來節省成本,或藉由取得免費的安全性更新來延長 SQL Server 2012 的支援。
選擇適當的目標
Azure 虛擬機器在 Azure 的許多不同區域中執行,也提供各種不同的機器大小和 Azure 受控磁碟類型。 在判斷適合 SQL Server 工作負載的 VM 大小和儲存體時,請參閱 Azure 虛擬機器中 SQL Server 的效能指導方針。
您可以使用適用 Azure Data Studio 的 Azure SQL 移轉延伸模組,取得 Azure 虛擬機器上正確大小的 SQL Server 建議。 此延伸模組會從來源 SQL Server 實例收集效能資料,進而提供正確大小的 Azure 建議,讓您能以最低成本滿足工作負載的效能需求。 若要深入了解,請參閱取得移轉您的 SQL Server 資料庫的 Azure 建議。
若要判斷適用於您資料資產中所有工作負載的 VM 大小和儲存體需求,應透過以效能為基礎的 Azure Migrate 評量來評量其大小。 如果無法使用這個選項,請參閱下列有關建立您自己的效能基準一文。
您也應該考慮在 VM 上正確安裝和設定 SQL Server。 應使用 Azure SQL 虛擬機器映像庫,因為這可讓您使用正確的版本、版次及作業系統建立 SQL Server VM。 這也會自動向 SQL Server 資源提供者註冊 Azure VM,藉以啟用自動備份和自動修補等功能。
移轉策略
有兩個移轉策略可將使用者資料庫移轉至 Azure VM 上的 SQL Server 執行個體:移轉和隨即轉移。
何種方法適用於您企業通常取決於下列因素:
- 移轉的大小和規模
- 移轉的速度
- 程式碼變更的應用程式支援
- 需要變更 SQL Server 版本、作業系統或兩者。
- 現有產品的支援生命週期
- 在移轉期間應用程式停機的時間範圍
下表說明兩個移轉策略的差異:
移轉策略 | 描述 | 使用時機 |
---|---|---|
隨即轉移 | 使用隨即轉移策略,將整個實體或虛擬 SQL Server 從其目前的位置移至 Azure VM 上的 SQL Server 執行個體,而不需要變更作業系統或 SQL Server 版本。 若要完成隨即轉移,請參閱 Azure Migrate。 來源伺服器會維持連線並可服務要求,而來源和目的地伺服器則會同步處理資料,讓您順暢進行移轉。 |
用於單一至大規模的移轉,適用於資料中心結束之類的案例。 幾乎不用變更使用者 SQL 資料庫或應用程式所需的程式碼,可讓整體移轉速度更快。 不需要額外的步驟就能移轉商務智慧服務,例如 SSIS、SSRS 和 SSAS。 |
移轉 | 當您想要升級目標 SQL Server 和/或作業系統版本時,請使用移轉策略。 從 Azure Marketplace 或符合來源 SQL Server 版本預先備妥的 SQL Server 映像中選取 Azure VM。 使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組,進行評定、取得適當大小的 Azure 設定 (VM 系列、計算和儲存體) 建議,並在最少停機時間的情況下將 SQL Server 資料庫移轉到 Azure 虛擬機器上的 SQL Server。 |
在需要或想要移轉至 Azure 虛擬機器上的 SQL Server,或需要升級不再支援的舊版 SQL Server 和/或 OS 版本時,請使用本策略。 可能需要一些應用程式或使用者資料庫變更來支援 SQL Server 升級。 移轉的範圍內如果包括移轉商業智慧服務,則可能會需要考量其他事項。 |
隨即轉移
下表詳細說明隨即轉移策略的可用方法,藉以將您的 SQL Server 資料庫移轉至 Azure VM 上的 SQL Server:
方法 | 最低來源版本 | 最低目標版本 | 來源備份大小限制 | 備註 |
---|---|---|---|---|
Azure Migrate | SQL Server 2008 SP4 | SQL Server 2012 SP4 | Azure VM 儲存體限制 | 現有 SQL Server 將依原樣移至 Azure VM 上的 SQL Server 執行個體。 可以縮放移轉工作負載至高達 35000 個 VM。 來源伺服器在同步處理伺服器資料期間維持連線並可服務要求,將停機時間降到最低。 自動化與指令碼:Azure Site Recovery 指令碼和適用於 Azure 的大規模移轉和規劃範例 |
注意
現在使用 Azure Migrate 可將容錯移轉叢集執行個體和可用性群組解決方案隨即轉換至 Azure VM 上的 SQL Server。
移轉
由於容易設定,建議的移轉方法是在本機進行原生 SQL Server 備份,然後將檔案複製到 Azure。 此方法支援從 2008 開始所有 SQL Server 版本的較大資料庫 (>1 TB) 以及較大的資料庫備份 (>1 TB)。 從 SQL Server 2014 開始,對於小於 1 TB 而且對 Azure 有良好連線能力的資料庫,SQL Server 備份至 URL 是較佳的方法。
將 SQL Server 資料庫移轉至 Azure VM 上的 SQL Server 執行個體時,若您需要完全移轉至目標伺服器,請務必選擇適合的方法,因為這會影響應用程式的停機時間範圍。
下表詳細說明將 SQL Server 資料庫移轉至 Azure VM 上的 SQL Server 可用的所有方法:
方法 | 最低來源版本 | 最低目標版本 | 來源備份大小限制 | 備註 |
---|---|---|---|---|
適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組 | SQL Server 2008 | SQL Server 2012 | Azure VM 儲存體限制 | 這是在 Azure Data Studio 中簡單易用的精靈延伸模組,用來將 SQL Server 資料庫移轉至 Azure 虛擬機器上的 SQL Server。 使用壓縮將傳輸的備份大小降至最低。 適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組以簡單的使用者介面提供評定、Azure 建議和移轉功能,並支援最少停機時間的移轉。 |
分散式可用性群組 | SQL Server 2016 | SQL Server 2016 | Azure VM 儲存體限制 | 分散式可用性群組是跨兩個不同可用性群組之特殊類型的可用性群組。 參與分散式可用性群組的可用性群組不需要位於相同的位置中,並包含跨網域支援。 此方法可將停機時間降至最短。 當您在內部部署環境中設定可用性群組時使用。 自動化與指令碼:T-SQL |
備份至檔案 | SQL Server 2008 SP4 | SQL Server 2012 SP4 | Azure VM 儲存體限制 | 對於在電腦之間移動資料庫,這是簡單且通過完善測試的技術。 使用壓縮將傳輸的備份大小降至最低。 自動化與指令碼:Transact-SQL (T-SQL) 和 AzCopy 至 Blob 儲存體 |
備份到 URL | SQL Server 2012 SP1 CU2 | SQL Server 2012 SP1 CU2 | SQL Server 2016 為 12.8 TB,否則為 1 TB | 此法是使用 Azure 儲存體將備份檔案移至 VM 的另一種方式。 使用壓縮將傳輸的備份大小降至最低。 自動化與指令碼:T-SQL 或維修方案 |
Database Migration Assistant (DMA) | SQL Server 2005 | SQL Server 2012 SP4 | Azure VM 儲存體限制 | DMA 會評量 SQL Server 內部部署,然後順暢地升級至較新版本的 SQL Server 或移轉至 Azure VM 上的 SQL Server、Azure SQL Database 或 Azure SQL 受控執行個體。 不應用於啟用 FILESTREAM 的使用者資料庫上。 DMA 也包含移轉 SQL 和 Window 登入,及評量 SSIS 套件的功能。 自動化與指令碼:命令列介面 |
卸離和附加 | SQL Server 2008 SP4 | SQL Server 2014 | Azure VM 儲存體限制 | 當您計畫使用 Azure Blob 儲存體服務儲存這些檔案,將這些檔案附加至 Azure VM 上的 SQL Server 執行個體時,請使用這個方法,這個方法適用於大型資料庫,也適用於備份和還原的時間太長的情況。 自動化與指令碼:T-SQL 和 AzCopy 至 Blob 儲存體 |
記錄傳送 | SQL Server 2012 SP4 (僅限 Windows) | SQL Server 2012 SP4 (僅限 Windows) | Azure VM 儲存體限制 | 記錄傳送會從內部部署複寫交易記錄檔至 Azure VM 上的 SQL Server 執行個體。 這可將容錯移轉期間的停機時間降到最低,而且設定負荷會比設定 Always On 可用性群組更少。 自動化與指令碼:T-SQL |
將內部部署機器轉換為 Hyper-V VHD,接著上傳至 Azure Blob 儲存體,然後使用上傳的 VHD 部署新的虛擬機器 | SQL Server 2012 或更新版本 | SQL Server 2012 或更新版本 | Azure VM 儲存體限制 | 使用時機包括自備 SQL Server 授權時、移轉在舊版 SQL Server 上執行的資料庫時,或同時移轉系統和使用者資料庫作為其他使用者資料庫和/或系統資料庫的一部分資料庫相依性時。 |
使用 Windows 匯入/匯出服務寄送硬碟機 | SQL Server 2012 或更新版本 | SQL Server 2012 或更新版本 | Azure VM 儲存體限制 | 當手動複製方法太慢,例如包含極大資料庫時,請使用 Windows 匯入/匯出服務 |
如需限制為無網路選項的大型資料傳輸,請參閱在低速或無網路頻寬之情況下進行大型資料集的資料轉送。
提示
使用 Azure Migrate 可將容錯移轉叢集執行個體和可用性群組解決方案隨即轉移至 Azure VM 上的 SQL Server。
考量
以下清單提供查看移轉方法時要考慮的重點:
- 為了達到最佳的資料傳輸效能,請使用壓縮的備份檔案,將資料庫和檔案移轉至 Azure VM 上的 SQL Server 執行個體。 對於較大的資料庫,除了壓縮外,也可將備份檔案分割成較小的檔案,提升備份和傳輸期間的效能。
- 如果從 SQL Server 2014 或更高版本進行移轉,請考慮加密備份,在網路傳輸期間保護資料。
- 若要將資料庫移轉期間的停機時間降到最低,請使用 Azure Data Studio 中的 Azure SQL 移轉延伸模組或 Always On 可用性群組選項。
- 若是網路選項受限或欠缺,請使用離線移轉方法,例如備份和還原,或 Azure 中提供的磁碟傳輸服務。
- 若要同時變更 Azure VM 上 SQL Server 的 SQL Server 版本,請參閱變更 SQL Server 版本。
商業智慧
在資料庫移轉的範圍外移轉 SQL Server 商務智慧服務時,可能會需要考量其他事項。
SQL Server Integration Services
您可以使用下列兩種方法之一,將 SSISDB 中的 SQL Server Integration Services (SSIS) 套件和專案移轉至 Azure VM 上的 SQL Server。
- 將 SSISDB 從來源 SQL Server 執行個體備份和還原至 Azure VM 上的 SQL Server。 這將 SSISDB 中的套件還原至Azure VM 上的目標 SQL Server 之上的 Integration Services 目錄。
- 使用其中一個部署選項,將 SSIS 套件重新部署至 Azure VM 上的目標 SQL Server。
如果您將 SSIS 套件部署為套件部署模型,您可以在移轉之前轉換這些套件。 如需詳細資訊,請參閱專案轉換教學課程。
SQL Server Reporting Services
若要將 SQL Server Reporting Services (SSRS) 報告移轉至 Azure VM 上的目標 SQL Server,請參閱移轉 Reporting Services 安裝 (原生模式)。
或者,您也可以將 SSRS 報告移轉至 Power BI 中的編頁報告。 利用 RDL 移轉工具來準備和遷移您的報表。 Microsoft 開發此工具,協助客戶將報表定義語言 (RDL) 報表,從其 SSRS 伺服器移轉至 Power BI。 其可在 GitHub 上取得,其中記載移轉案例的端對端逐步解說。
SQL Server Analysis Services
您可以使用下列其中一個選項,將 SQL Server Analysis Services 資料庫 (多維度或表格式模型) 從來源 SQL Server 遷移至 Azure VM 上的 SQL Server:
- 以互動方式使用 SSMS
- 使用分析管理物件 (AMO) 透過程式設計的方式
- 使用 XMLA (XML for Analysis) 透過指令碼的方式
若要深入了解,請參閱移動 Analysis Services 資料庫。
或者,您可以考慮使用新 XMLA 讀取/寫入端點,將內部部署 Analysis Services 表格式模型移轉至 Azure Analysis Services 或 Power BI Premium。
伺服器物件
視來源 SQL Server 中的設定而定,可能會有額外的 SQL Server 功能,需要手動介入才能將其移轉至 Azure VM 上的 SQL Server,方法是使用 SQL Server Management Studio 在 Transact-SQL (T-SQL) 中產生指令碼,然後在 Azure VM 上的目標 SQL Server 上執行指令碼。 以下是一些常用的功能:
- 登入和角色
- 連結的伺服器
- 外部資料來源
- 代理程式作業
- 警示
- Database Mail
- 複寫
如需必須移動的中繼資料和伺服器物件完整清單,請參閱管理在另一部伺服器上提供資料庫時所需的中繼資料。
支援的版本
當您準備將 SQL Server 資料庫移轉至 Azure VM 上的 SQL Server 時,請務必考慮支援的 SQL Server 版本。 如需 Azure VM 上目前支援的 SQL Server 版本清單,參閱 Azure VM 上的 SQL Server。
移轉資產
如需其他協助,請參閱下列針對實際移轉專案製作的資源。
資產 | 說明 |
---|---|
資料工作負載評定模型及工具 | 此工具會針對指定的工作負載,提供建議的「最適合」目標平台、雲端整備,以及應用程式/資料庫補救等級。 此工具提供簡單的選取即計算並產生報告功能,透過提供自動化且統一的目標平台決策程序來協助加速評估大型資產。 |
使用 Logman 將執行資料收集自動化 | 此工具收集可了解基準效能的執行資料,有助於提供移轉目標的建議。 此工具會使用 logman.exe 建立命令,該命令會建立、啟動、停止及刪除遠端 SQL Server 上設定的效能計數器。 |
Multiple-SQL-VM-VNet-ILB | 此白皮書概述在 SQL Server Always On 可用性群組設定中設定多部 Azure 虛擬機器的步驟。 |
支援每個區域 Ultra SSD 的 Azure 虛擬機器 | 這些 PowerShell 指令碼提供的程式設計選項,可讓您取得可支援 Ultra SSD 之 Azure 虛擬機器的支援區域清單。 |
資料 SQL 工程小組開發這些資源。 此小組的核心任務是為資料平台遷移專案的複雜現代化排除障礙,加速遷移至 Microsoft 的 Azure 資料平台。