移轉指南:從 SQL Server 到 Azure 虛擬機器上的 SQL Server
在本指南中,您將了解如何根據需求,透過工具和技術來將使用者資料庫從 SQL Server 移轉到 Azure 虛擬機器上的 SQL Server 執行個體。
請先完成移轉前步驟,再繼續進行。
移轉
完成移轉前階段的步驟之後,您就可以開始移轉使用者資料庫和元件。 請使用您慣用的移轉方法來移轉您的資料庫。
下列各節依喜好排序提供執行移轉的選項:
- 使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組進行移轉,搭配最少停機時間
- 備份與還原
- 斷開 URL 連結並重新連接 URL
- 轉換為 VM、上傳至 URL 並部署為新的 VM
- 記錄傳送
- 寄送硬碟
- 在使用者資料庫外部移轉物件
使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組進行移轉 (最少停機時間)
若要使用 Azure Data Studio 執行最少停機時間的移轉,請遵循下列高階步驟操作。 如需詳細的逐步教學課程,請參閱教學課程:使用 DMS 將 SQL Server 移轉到 Azure 虛擬機器上的 SQL Server:
- 下載並安裝 Azure Data Studio 和 Azure SQL 移轉延伸模組。
- 啟動 Azure Data Studio 延伸模組的「移轉至 Azure SQL 精靈」。
- 選取資料庫進行評估,並查看移轉的準備情況或可能存在的問題。 此外,請收集效能資料,並取得適當規模的 Azure 建議。
- 從您的訂閱選取 Azure 帳戶和 Azure 虛擬機器上的目標 SQL Server。
- 選取資料庫備份的位置。 您的資料庫備份可以位於內部部署的網路共用,或位於 Azure 儲存體 Blob 容器中。
- 使用 Azure Data Studio 中的精靈,建立新的 Azure 資料移轉服務。 如果您先前已使用 Azure Data Studio 建立 Azure 資料庫移轉服務,則可視需要重複使用同一個服務。
- 非必要:如果您的備份位於內部部署的網路共用,請在能夠連線到來源 SQL Server 並能存取包含備份檔案的位置的電腦上,下載並安裝自我管理整合執行階段。
- 啟動資料庫移轉,並在 Azure Data Studio 中監視進度。 您也可以在 Azure 入口網站中的 Azure 資料庫移轉服務資源下,監視進度。
- 完成移轉。
- 停止所有導向來源資料庫的傳入交易。
- 進行應用程式設定變更,以指向 Azure 虛擬機器上 SQL Server 中的目標資料庫。
- 請在指定的備份位置針對來源資料庫進行所有尾端記錄備份。
- 請確定所有資料庫備份都具有「監視詳細資料」頁面中的「還原」狀態。
- 在監控詳細資料頁面中選擇 [完全移轉完成]。
備份與還原
使用備份和還原來進行標準遷移:
- 根據您的需求,為 Azure 虛擬機器上的 SQL Server 設定連線能力。 如需詳細資訊,請參閱連線到 Azure 上的 SQL Server 虛擬機器。
- 暫停或停止任何在使用所欲移轉資料庫的應用程式。
- 使用單一使用者模式,確定使用者資料庫處於非使用中的狀態。
- 執行完整資料庫備份至內部部署位置。
- 使用遠端桌面、Azure 資料總管或 AzCopy 命令列公用程式,將您的內部部署備份檔案複製到您的 VM。 (建議大於 2 TB 的備份。)
- 將完整資料庫備份還原到 Azure 虛擬機器上的 SQL Server。
從 URL 中分離並重新附加到 URL
中斷資料庫和記錄檔案的連線,並將其傳輸至 Azure Blob 儲存體。 然後在您的 Azure VM 上從 URL 連結資料庫。 如果您想要將實體資料庫檔案存放在 Blob 儲存體中,請使用這個方法。這對非常大型的資料庫可能很有用。 您可以使用下列一般步驟,使用此手動方法來移轉使用者資料庫:
- 從內部部署資料庫執行個體卸除資料庫檔案。
- 使用 AzCopy 命令列公用程式,將中斷連結的資料庫檔案複製到 Azure Blob 儲存體。
- 將資料庫檔案從 Azure URL 連結至 Azure VM 中的 SQL Server 執行個體。
轉換為 VM、上傳至 URL 並部署為新的 VM
您可以使用這個方法,將內部部署 SQL Server 執行個體中的所有系統和使用者資料庫移轉至 Azure 虛擬機器。 您可以使用下列一般步驟,使用此手動方法來移轉整個 SQL Server 執行個體:
- 將實體或虛擬機器轉換為 Hyper-V VHD。
- 使用 Add-AzureVHD Cmdlet,將 VHD 檔案上傳至 Azure 儲存體。
- 使用上傳的 VHD 來部署新的虛擬機器。
注意
若要移轉整個應用程式,請考慮使用 Azure Site Recovery。
記錄傳送
記錄傳送會將本地的交易紀錄檔案複寫至 Azure VM 上的 SQL Server 執行個體。 這個選項可將容錯移轉期間的停機時間降到最低,而且設定負荷會比設定 Always On 可用性群組更少。
如需詳細資訊,請參閱記錄傳送資料表和預存程序。
寄送硬碟
透過網路進行上傳所費不貲或不可行時,請使用 Windows 匯入/匯出服務方法 ,將大量檔案資料移轉至 Azure Blob 儲存體。 您可以使用此服務,將包含該資料的一個或多個硬碟送至 Azure 資料中心,而您的資料將會在此上傳至儲存體帳戶。
在使用者資料庫外部移轉物件
您可能需要更多的 SQL Server 物件,才能在移轉後順利操作使用者資料庫。
下表列出可在使用者資料庫移轉前後完成的元件和建議的移轉方法。
功能 | 元件 | 移轉方法 |
---|---|---|
資料庫 | 模型 | 使用 SQL Server Management Studio 的指令碼。 |
tempdb 資料庫 |
規劃將 tempdb 移到 Azure VM 暫存磁碟 (SSD) 以獲得最佳效能。 務必挑選具有充足本機 SSD 的 VM 大小,以容納您的 tempdb 。 |
|
具有 FileStream 的使用者資料庫 | 使用備份和還原方法來進行移轉。 Data Migration Assistant 不支援具有 FileStream 的資料庫。 | |
安全性 | SQL Server 和 Windows 登入 | 使用 Data Migration Assistant 移轉使用者登入資訊。 |
SQL Server 角色 | 用 SQL Server Management Studio 撰寫指令碼。 | |
密碼編譯提供者 | 建議轉換為使用 Azure Key Vault。 此程序會使用 SQL IaaS 代理程式延伸組件。 | |
伺服器物件 | 備份裝置 | 使用 Azure 備份取代為資料庫備份,或將備份寫入 Azure 儲存體 (SQL Server 2012 SP1 CU2 +)。 此程序會使用 SQL IaaS 代理程式延伸組件。 |
連結的伺服器 | 使用 SQL Server Management Studio 撰寫指令碼。 | |
伺服器觸發器 | 使用 SQL Server Management Studio 撰寫指令碼。 | |
複寫 | 地方出版物 | 使用 SQL Server Management Studio 的腳本。 |
本地訂閱者 | 使用 SQL Server Management Studio 的腳本。 | |
PolyBase | PolyBase | 使用 SQL Server Management Studio 撰寫指令碼。 |
管理 | 資料庫郵件 | 使用 SQL Server Management Studio 的指令碼。 |
SQL Server Agent | 工作 | 使用 SQL Server Management Studio 的指令碼。 |
警示 | 使用 SQL Server Management Studio 的指令碼。 | |
運算子 | 以 SQL Server Management Studio 撰寫指令碼。 | |
Proxy | 使用 SQL Server Management Studio 的指令碼。 | |
作業系統 | 檔案、檔案分享 | 請記下 SQL 伺服器所使用的其他任何檔案或檔案共用,並將這些檔案複寫至 Azure 虛擬機器的目標環境上。 |
移轉後
成功完成移轉階段之後,您需要完成一系列的移轉後工作,以確保所有項目盡可能順暢且有效率地運作。
補救應用程式
將資料移轉至目標環境之後,先前取用來源的所有應用程式都必須開始取用目標。 在某些情況下,可能需要對應用程式進行變更才能完成這項工作。
請將 Data Migration Assistant 所建議的任何修正套用至使用者資料庫。 您必須編寫這些修正的指令碼,藉以確保一致性並允許自動化。
執行測試
資料庫移轉的測試方法包含下列活動:
- 開發驗證測試:若要測試資料庫移轉,您需要使用 SQL 查詢。 建立驗證查詢以針對來源及目標資料庫執行。 驗證查詢應涵蓋已定義的範圍。
- 設定測試環境:測試環境應該包含來源資料庫及目標資料庫的複本。 請務必隔離測試環境。
- 執行驗證測試:對來源及目標執行驗證測試,然後分析結果。
- 執行效能測試:對來源及目標執行效能測試,然後分析並比較結果。
最佳化
對於協調任何資料精確度問題、驗證完整性,以及因應工作負載的潛在效能問題而言,移轉後階段至關重要。
如需這些問題的相關詳細資訊以及問題的緩解步驟,請參閱: