移轉指南:Azure 虛擬機器上的 SQL Server SQL Server

適用於:Azure VM 上的 SQL Server

在本指南中,您將了解如何根據需求,透過工具和技術來探索評定使用者資料庫,並將其從 SQL Server 移轉到 Azure 虛擬機器上的 SQL Server 執行個體。

您可以移轉在內部部署或下列項目上執行的 SQL Server:

  • 虛擬機器 (VM) 上的 SQL Server。
  • Amazon Web Services (AWS) EC2。
  • Amazon 關聯式資料庫服務 (AWS RDS)。
  • 計算引擎 (Google Cloud Platform - GCP)。

如需其他更多移轉策略的詳細資訊,請參閱 SQL Server VM 移轉概觀。 如需其他移轉指南,請參閱 Azure 資料庫移轉指南

Diagram that shows a migration process flow.

必要條件

若要在 Azure 虛擬機器上移轉至 SQL Server,需要下列資源:

移轉前

開始移轉之前,需先探索 SQL 環境的拓撲,並評估欲進行的移轉作業是否可行。

探索

Azure Migrate 會評估內部部署電腦的移轉適用性、執行以效能為依據的大小調整,並提供執行內部部署的成本估計。 若要規劃移轉,請使用 Azure Migrate 識別現有的資料來源及 SQL Server 執行個體所用功能的相關詳細資料。 此流程中需掃描網路,以識別組織中所有的 SQL Server 執行個體以及所用的版本和功能。

重要

為 SQL Server 執行個體選擇目標 Azure 虛擬機器時,請務必參考 Azure 虛擬機器上的 SQL Server 效能指導方針

如需更多探索工具,請參閱適用於資料移轉案例的服務和工具

評定

從內部部署 SQL Server 移轉到 Azure 虛擬機器上的 SQL Server 時,如果來源和目標 SQL Server 版本相同,則不太可能會發生任何相容性或功能同位問題。 如果您並未升級 SQL Server 版本,請略過此步驟,並移至 [移轉] 區段。

移轉之前,最好先執行 SQL Server 資料庫的評定以識別移轉封鎖程式 (如果有),而適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組會在移轉前這麼做。

注意

如果您正在大規模評定 VMWare 上的整個 SQL Server 資料資產,則請使用 Azure Migrate 取得 Azure SQL 部署建議、目標大小調整及每月預估值。

評估使用者資料庫

Azure Data Studio 的 Azure SQL 移轉延伸模組可提供流暢的精靈操作體驗,協助您執行評量、取得 Azure 建議,並將內部部署 SQL Server 資料庫移轉至 Azure 虛擬機器上的 SQL Server。 此外,除了醒目提示任何移轉封鎖程式或警告之外,延伸模組也包含 Azure 建議的選項,可收集資料庫的效能資料,以提供 Azure 虛擬機器上正確大小的 SQL Server 建議,進而 (以最低價格) 符合工作負載的效能需求。

若要深入了解 Azure 建議,請參閱為內部部署 SQL Server 資料庫取得正確大小的 Azure 建議

重要

若要使用 Azure SQL 移轉延伸模組來評定資料庫,請確定用來連線來源 SQL Server 的登入是系統管理員伺服器角色的成員,或具有 CONTROL SERVER 權限。

針對版本升級,如果您要升級至 Azure 虛擬機器上具有較高版本的 SQL Server 執行個體,以了解來源和目標版本之間的差距,請使用 Data Migration Assistant 來評定內部部署 SQL Server 執行個體。

評估應用程式

一般而言,應用程式層會存取使用者資料庫,藉以保存和修改資料。 Data Migration Assistant 可以用兩種方式來評估應用程式的資料存取層:

在評估使用者資料庫時,請使用 Data Migration Assistant 匯入已擷取的追蹤檔案或 Data Access Migration Toolkit 檔案。

大規模評量

如果您有多部需要進行 Azure 移轉整備程度評定的伺服器,可以使用下列其中一個選項來自動化程序。 若要深入瞭解如何使用指令碼,請參閱使用自動化大規模移轉資料庫

如需橫跨多個大型資產的摘要報告,也可以將 Data Migration Assistant 評定合併到 Azure Migrate

使用 Data Migration Assistant 升級資料庫

針對升級案例,您可能會有一系列建議,以確保您的使用者資料庫在升級之後能夠正常運作。 Data Migration Assistant 會提供詳細資料,說明受到影響的物件以及如何解決各項問題的資源。 開始升級生產環境之前,請務必先解決所有的中斷性變更和行為變更。

對於已遭取代的功能,如果想要避免進行這些變更並加快移轉速度,可以選擇在原始相容性模式中執行您的使用者資料庫。 此動作會防止升級資料庫相容性,直到已取代的項目得到解決為止。

警告

並非所有 SQL Server 版本都支援所有的相容性模式。 請檢查您的目標 SQL Server 版本是否支援您選擇的資料庫相容性。 例如,SQL Server 2019 不支援層級 90 相容性 (SQL Server 2005) 的資料庫。 這些資料庫至少需要升級至相容性層級 100。

移轉

完成移轉前的步驟之後,您就可以開始移轉使用者資料庫和元件。 請使用您慣用的移轉方法來移轉您的資料庫。

下列各節依喜好排序提供執行移轉的選項:

使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組進行移轉 (最少停機時間)

若要使用 Azure Data Studio 執行最少停機時間的移轉,請遵循下列高階步驟操作。 如需詳細的逐步教學課程,請參閱使用 Azure Data Studio 將 SQL Server 線上移轉到 Azure 虛擬機器上的 SQL Server

  1. 下載並安裝 Azure Data StudioAzure SQL 移轉延伸模組
  2. 啟動 Azure Data Studio 延伸模組的「移轉至 Azure SQL 精靈」。
  3. 選取資料庫以進行評定,並檢視移轉整備程度或是否其他任何問題。 此外,請收集效能資料,並取得正確大小的 Azure 建議。
  4. 從您的訂閱選取 Azure 帳戶和 Azure 虛擬機器上的目標 SQL Server。
  5. 選取資料庫備份的位置。 您的資料庫備份可以位於內部部署的網路共用,或位於 Azure 儲存體 Blob 容器中。
  6. 使用 Azure Data Studio 中的精靈,建立新的 Azure 資料移轉服務。 如果您先前已使用 Azure Data Studio 建立 Azure 資料庫移轉服務,則可視需要重複使用同一個服務。
  7. 選擇性:如果您的備份位於內部部署網路共用,請在可連線到來源 SQL Server,而且其位置包含備份檔案的電腦上,下載並安裝自我裝載整合執行階段
  8. 啟動資料庫移轉,並在 Azure Data Studio 中監視進度。 您也可以到 Azure 入口網站的 Azure 資料庫移轉服務資源,監視裝載進度。
  9. 完成完全移轉。
    1. 停止所有導向來源資料庫的傳入交易。
    2. 進行應用程式設定變更,以指向 Azure 虛擬機器上 SQL Server 中的目標資料庫。
    3. 針對指定備份位置中的來源資料庫,進行結尾記錄備份。
    4. 請確定所有資料庫備份都具有「監視詳細資料」頁面中的「還原」狀態。
    5. 選取監視詳細資料頁面中的 [完成完全移轉]。

備份與還原

如何使用備份和還原來執行標準移轉:

  1. 根據您的需求,為 Azure 虛擬機器上的 SQL Server 設定連線能力。 如需詳細資訊,請參閱連線到 Azure 上的 SQL Server 虛擬機器 (資源管理員)
  2. 暫停或停止任何在使用所欲移轉資料庫的應用程式。
  3. 使用單一使用者模式,確定使用者資料庫處於非使用中的狀態。
  4. 執行完整資料庫備份至內部部署位置。
  5. 使用遠端桌面、Azure 資料總管AzCopy 命令列公用程式,將您的內部部署備份檔案複製到您的 VM。 (建議大於 2 TB 的備份。)
  6. 將完整資料庫備份還原到 Azure 虛擬機器上的 SQL Server。

從 URL 中斷連結和從 URL 連結

中斷資料庫和記錄檔案的連線,並將其傳輸至 Azure Blob 儲存體。 然後在您的 Azure VM 上從 URL 連結資料庫。 如果您想要將實體資料庫檔案存放在 Blob 儲存體中,請使用這個方法。這對非常大型的資料庫可能很有用。 您可以使用下列一般步驟,使用此手動方法來移轉使用者資料庫:

  1. 從內部部署資料庫執行個體中斷連結資料庫檔案。
  2. 使用 AZCopy 命令列公用程式,將中斷連結的資料庫檔案複製到 Azure Blob 儲存體。
  3. 將資料庫檔案從 Azure URL 連結至 Azure VM 中的 SQL Server 執行個體。

轉換為 VM、上傳至 URL 並部署為新的 VM

您可以使用這個方法,將內部部署 SQL Server 執行個體中的所有系統和使用者資料庫移轉至 Azure 虛擬機器。 您可以使用下列一般步驟,使用此手動方法來移轉整個 SQL Server 執行個體:

  1. 將實體或虛擬機器轉換為 Hyper-V VHD。
  2. 使用 Add-AzureVHD Cmdlet,將 VHD 檔案上傳至 Azure 儲存體。
  3. 使用上傳的 VHD 來部署新的虛擬機器。

注意

若要移轉整個應用程式,請考慮使用 Azure Site Recovery

記錄傳送

記錄傳送會從內部部署複寫交易記錄檔至 Azure VM 上的 SQL Server 執行個體。 這個選項可將容錯移轉期間的停機時間降到最低,而且設定負荷會比設定 Always On 可用性群組更少。

如需詳細資訊,請參閱記錄傳送資料表和預存程序

寄送硬碟

透過網路進行上傳所費不貲或不可行時,請使用 Windows 匯入/匯出服務方法 ,將大量檔案資料移轉至 Azure Blob 儲存體。 您可以使用此服務,將包含該資料的一個或多個硬碟送至 Azure 資料中心,而您的資料將會在此上傳至儲存體帳戶。

在使用者資料庫外部移轉物件

您可能需要更多的 SQL Server 物件,才能在移轉後順利操作使用者資料庫。

下表列出可在使用者資料庫移轉前後完成的元件和建議的移轉方法。

功能 元件 移轉方法
資料庫 模型 使用 SQL Server Management Studio 的指令碼。
資料庫 規劃將 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 VM 資源提供者
伺服器物件 備份裝置 使用 Azure 備份取代為資料庫備份,或將備份寫入 Azure 儲存體 (SQL Server 2012 SP1 CU2 +)。 此程式會使用 SQL VM 資源提供者
連結的伺服器 使用 SQL Server Management Studio 的指令碼。
伺服器觸發程序 使用 SQL Server Management Studio 的指令碼。
複寫 本機發行集 使用 SQL Server Management Studio 的指令碼。
本機訂閱者 使用 SQL Server Management Studio 的指令碼。
PolyBase PolyBase 使用 SQL Server Management Studio 的指令碼。
管理 Database Mail 使用 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 所建議的任何修正套用至使用者資料庫。 您必須編寫這些修正的指令碼,藉以確保一致性並允許自動化。

執行測試

資料庫移轉的測試方法包含下列活動:

  1. 開發驗證測試:若要測試資料庫移轉,您需要使用 SQL 查詢。 建立驗證查詢以針對來源及目標資料庫執行。 驗證查詢應涵蓋已定義的範圍。
  2. 設定測試環境:測試環境應該包含來源資料庫及目標資料庫的複本。 請務必隔離測試環境。
  3. 執行驗證測試:對來源及目標執行驗證測試,然後分析結果。
  4. 執行效能測試:對來源及目標執行效能測試,然後分析並比較結果。

提示

使用資料庫測試助理協助評估目標 SQL Server 效能。

最佳化

對於協調任何資料精確度問題、驗證完整性,以及因應工作負載的潛在效能問題而言,移轉後階段至關重要。

如需這些問題的相關詳細資訊以及問題的緩解步驟,請參閱:

後續步驟

若要確認適用於 SQL Server 的服務可用性,請見 Azure 全球基礎結構中心

如需 Microsoft 及協力廠商服務和工具的矩陣,以及可協助處理各種資料庫與資料移轉案例和特殊工作的工具,請參閱適用於資料移轉的服務和工具

若要深入了解 Azure SQL,請參閱:

若要深入了解雲端移轉的架構和採用週期,請參閱:

如需關於授權的詳細資訊,請參閱:

若要評定應用程式存取層,請參閱 Data Access Migration Toolkit (預覽)

如需如何對於資料存取層執行 A/B 測試的資訊,請參閱資料庫測試助理概觀