在本指南中,您將了解如何根據需求,透過工具和技術來將使用者資料庫從 SQL Server 移轉到 Azure 虛擬機器上的 SQL Server 執行個體。
請先完成移轉前步驟,再繼續進行。
移轉
完成移轉前階段的步驟之後,您就可以開始移轉使用者資料庫和元件。 請使用您慣用的移轉方法來移轉您的資料庫。
下列各節依喜好排序提供執行移轉的選項:
- 備份與還原
- 斷開 URL 連結並重新連接 URL
- 轉換為 VM、上傳至 URL 並部署為新的 VM
- 記錄傳送
- 寄送硬碟
- 使用 SSMS 中的 SQL Server 移轉元件進行移轉,並將停機時間降至最低
- 在使用者資料庫外部移轉物件
從 URL 中分離並重新附加到 URL
中斷資料庫和記錄檔案的連線,並將其傳輸至 Azure Blob 儲存體。 然後在您的 Azure VM 上從 URL 連結資料庫。 如果您想要將實體資料庫檔案存放在 Blob 儲存體中,請使用這個方法。這對非常大型的資料庫可能很有用。 您可以使用下列一般步驟,使用此手動方法來移轉使用者資料庫:
- 從內部部署資料庫執行個體卸除資料庫檔案。
- 使用 AzCopy 命令列公用程式,將中斷連結的資料庫檔案複製到 Azure Blob 儲存體。
- 將資料庫檔案從 Azure URL 連結至 Azure VM 中的 SQL Server 執行個體。
備份與還原
使用備份和還原來進行標準遷移:
根據您的需求,為 Azure 虛擬機器上的 SQL Server 設定連線能力。 如需詳細資訊,請參閱連線到 Azure 上的 SQL Server 虛擬機器。
暫停或停止任何在使用所欲移轉資料庫的應用程式。
使用單一使用者模式,確定使用者資料庫處於非使用中的狀態。
執行完整資料庫備份至內部部署位置。
使用遠端桌面、Azure 資料總管或 AzCopy 命令列公用程式,將您的內部部署備份檔案複製到您的 VM。 (建議大於 2 TB 的備份。)
將完整資料庫備份還原到 Azure 虛擬機器上的 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 Management Studio 中的 SQL Server 移轉元件進行移轉 (將停機時間降至最低)
SQL Server Management Studio(SSMS)中的移轉元件會檢查 SQL Server 從較低版本升級到較高版本時的相容性和升級問題,並在內部部署和其他虛擬機器(VM)環境中執行。
移轉元件會尋找與重大變更、行為變更、已取代的功能和其他資訊相關的相容性問題。
- 如果要從一個跨平台資料庫移轉至另一個跨平台資料庫,此報告也會提供功能同位檢查。
- 升級顧問評估報告提供物件的效果、可能的原因和補救步驟。
如需詳細資訊,請參閱在 SQL Server Management Studio 中使用 SQL Server 移轉元件。
在使用者資料庫外部移轉物件
您可能需要更多的 SQL Server 物件,才能在移轉後順利操作使用者資料庫。
下表列出可在使用者資料庫移轉前後完成的元件和建議的移轉方法。
| 功能 | 元件 | 移轉方法 |
|---|---|---|
| 資料庫 | 模型 | 使用 SQL Server Management Studio 的指令碼。 |
tempdb 資料庫 |
規劃將 tempdb 移到 Azure VM 暫存磁碟 (SSD) 以獲得最佳效能。 務必挑選具有充足本機 SSD 的 VM 大小,以容納您的 tempdb。 |
|
| 使用 FILESTREAM 的用戶資料庫 | 使用備份和還原方法來進行移轉。 SQL Server Management Studio 中的 SQL Server 移轉元件不支援使用 FILESTREAM 的資料庫。 | |
| 安全性 | SQL Server 和 Windows 登入 | 使用 SQL Server Management Studio 中的 SQL Server 移轉元件 來移轉使用者登入。 |
| 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 代理程式 | 工作 | 使用 SQL Server Management Studio 的指令碼。 |
| 警示 | 使用 SQL Server Management Studio 的指令碼。 | |
| 運算子 | 使用 SQL Server Management Studio 的指令碼。 | |
| Proxy | 使用 SQL Server Management Studio 的指令碼。 | |
| 作業系統 | 檔案、檔案分享 | 請記下 SQL 伺服器所使用的其他任何檔案或檔案共用,並將這些檔案複寫至 Azure 虛擬機器的目標環境上。 |
移轉後
成功完成移轉階段之後,您需要完成一系列的移轉後工作,以確保所有項目盡可能順暢且有效率地運作。
補救應用程式
將資料移轉至目標環境之後,先前取用來源的所有應用程式都必須開始取用目標。 在某些情況下,可能需要對應用程式進行變更才能完成這項工作。
將 SQL Server 移轉元件建議的任何修正套用至用戶資料庫。 您必須編寫這些修正的指令碼,藉以確保一致性並允許自動化。
執行測試
資料庫移轉的測試方法包含下列活動:
開發驗證測試:若要測試資料庫移轉,您需要使用 SQL 查詢。 建立驗證查詢以針對來源及目標資料庫執行。 驗證查詢應涵蓋已定義的範圍。
設定測試環境:測試環境應該包含來源資料庫及目標資料庫的複本。 請務必隔離測試環境。
執行驗證測試:對來源及目標執行驗證測試,然後分析結果。
執行效能測試:對來源及目標執行效能測試,然後分析並比較結果。
最佳化
對於協調任何資料精確度問題、驗證完整性,以及因應工作負載的潛在效能問題而言,移轉後階段至關重要。
如需這些問題的相關詳細資訊以及問題的緩解步驟,請參閱: