移轉指南:SQL Server 至 Azure SQL Database

適用於:SQL ServerAzure SQL Database

在本指南中,您將了解如何移轉SQL Server 執行個體至 Azure SQL Database。

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

  • 虛擬機器上的 SQL Server
  • Amazon EC2 (Elastic Compute Cloud)
  • Amazon RDS (關聯式資料庫服務) for SQL Server
  • Google Compute Engine
  • 適用於 SQL Server 的 Cloud SQL - GCP (Google Cloud Platform)

如需更多的移轉資訊,請參閱移轉概觀。 如需其他移轉指南,請參閱資料庫移轉

Diagram of migration process flow.

必要條件

若要將您的 SQL Server 移轉 至 Azure SQL Database,請確定您已:

移轉前

在確認您的來源環境受到支援之後,請從移轉前階段開始。 探索所有現有的資料來源、評量移轉可行性,並找出可能會妨礙您移轉 Azure 雲端的任何執行問題。

探索

在探索階段中,掃描網路以找出您組織所使用的所有 SQL Server 執行個體和功能。

使用 Azure Migrate 評量內部部署伺服器的移轉適用性、執行以效能為基礎的大小調整,並提供在 Azure 中執行的成本估計。

或者,您可以使用 Microsoft Assessment and Planning Toolkit (MAP Toolkit) 來評定您目前的 IT 基礎結構。 此工具組提供功能強大的詳細目錄、評量和報告工具,以簡化移轉規劃程序。

如需可用於探索階段的工具詳細資訊,請參閱資料移轉案例可用的服務和工具

評定

注意

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

探索到資料來源之後,請評量任何可移轉至 Azure SQL Database 的內部部署 SQL Server 資料庫,藉以找出移轉阻礙或相容性問題。

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

您可以使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組,評估資料庫以取得:

若要使用 Azure SQL 移轉延伸模組評量您的環境,請遵循下列步驟:

  1. 開啟適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組
  2. 連線至來源 SQL Server 執行個體
  3. 在 Azure Data Studio 的 Azure SQL 移轉精靈中,按一下 [移轉至 Azure SQL] 按鈕
  4. 選取要評量的資料庫,然後按一下 [下一步]
  5. 選取您的 Azure SQL 目標,在此案例中是 Azure SQL Database (預覽)
  6. 按一下 [檢視/選取] 以檢閱評量報告
  7. 尋找移轉封鎖和功能同位問題。 您也可以將評量報告匯出至可與組織中其他小組或人員共用的檔案。
  8. 判斷最小化移轉後工作的資料庫相容性層級。

若要使用 Azure SQL 移轉延伸模組取得 Azure 建議,請遵循下列步驟:

  1. 開啟適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組
  2. 連線至來源 SQL Server 執行個體
  3. 在 Azure Data Studio 的 Azure SQL 移轉精靈中,按一下 [移轉至 Azure SQL] 按鈕
  4. 選取要評量的資料庫,然後按一下 [下一步]
  5. 選取您的 Azure SQL 目標,在此案例中是 Azure SQL Database (預覽)
  6. 瀏覽至 Azure 建議區段,按一下 [取得 Azure 建議]
  7. 選取 [立即收集效能資料]。 選取本機電腦上的資料夾以儲存效能記錄,然後選取 [開始]。
  8. 10 分鐘之後,Azure Data Studio 會指出可用於 Azure SQL Database 的建議。
  9. 查看 Azure SQL 目標面板中的 Azure SQL Database 卡片,檢閱您的 Azure SQL Database SKU 建議

若要深入了解,請參閱教學課程:在 Azure Data Studio 中離線將 SQL Server 移轉至 Azure SQL Database (預覽)

如果評量遭遇多個阻礙,進而確認您的資料庫尚未準備好進行 Azure SQL Database 移轉,則另請考慮:

可調整規模的評量與分析

適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組Azure Migrate 支援執行調整規模評量以及評量報告的彙總,以利進行分析。

如果您有多個伺服器和資料庫需要大規模評量和分析,以提供更廣泛的資料資產檢視,請參閱下列連結以深入了解:

重要

您也可以使用 DMA 命令列公用程式大規模自動化執行多個資料庫的評量,尤其是大型資料庫,並將評量上傳至 Azure Migrate,以供進一步的分析和目標整備度。

部署至最佳大小的受控執行個體

您可以使用適用 Azure Data Studio 的 Azure SQL 移轉延伸模組,取得正確大小的 Azure SQL 受控執行個體建議。 此延伸模組會從來源 SQL Server 實例收集效能資料,進而提供正確大小的 Azure 建議,讓您能以最低成本滿足工作負載的效能需求。 若要深入瞭解,請參閱為內部部署的 Microsoft SQL Server 資料庫取得正確大小的 Azure 建議

根據探索和評量階段中的資訊,建立適當大小的目標 Azure SQL Database。 您可以利用快速入門:建立單一資料庫 - Azure SQL Database 來完成這項作業。

移轉

完成移轉前階段的相關工作之後,您就可以開始執行結構描述和資料移轉。

使用您選擇的移轉方法來移轉您的資料。

使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組進行移轉

若要使用 Azure Data Studio 執行離線移轉,請遵循下列高階步驟。 如需詳細的逐步教學課程,請參閱教學課程:在 Azure Data Studio 中離線將 SQL Server 移轉至 Azure SQL Database (預覽)

  1. 下載並安裝 Azure Data StudioAzure SQL 移轉延伸模組
  2. 在 Azure Data Studio 的延伸模組中,啟動移轉至 Azure SQL 移轉精靈。
  3. 選取資料庫以進行評定,並檢視移轉整備程度或是否其他任何問題。 此外,請收集效能資料,並取得正確大小的 Azure 建議。
  4. 從您的訂用帳戶選取 Azure 帳戶和目標 Azure SQL Database。
  5. 選取要移轉的資料表清單。
  6. 使用 Azure Data Studio 中的精靈,建立新的 Azure 資料移轉服務。 如果您先前已使用 Azure Data Studio 建立 Azure 資料庫移轉服務,則可視需要重複使用同一個服務。
  7. 其他做法:若您的備份位於內部部署的網路共用,則請在可連線至來源 SQL Server,而且其位置包含備份檔案的機器上,下載並安裝自我裝載整合執行階段
  8. 啟動資料庫移轉,並在 Azure Data Studio 中監視進度。 您也可以到 Azure 入口網站的 Azure 資料庫移轉服務資源,監視裝載進度。

資料同步和完全移轉

當您使用會持續將資料變更從來源複寫/同步至目標的移轉選項時,來源資料和結構描述可能會變更,並且從目標漂移。 在資料同步期間,請確定來源上的所有變更都已在移轉程序中擷取並套用至目標。

在確認來源和目標上的資料都相同後,您便可以從來源完全移轉至目標環境。 請務必與商務 / 應用程式團隊規劃完全移轉流程,以確保在完全移轉期間盡可能減少中斷,避免影響商務持續性。

重要

如需使用 DMS 進行移轉時與執行完全移轉相關聯的特定步驟的詳細資料,請參閱執行移轉完全移轉

使用異動複寫進行移轉

當您在移轉發生時無法負擔從實際執行中移除 SQL Server 資料庫時,可以使用 SQL Server 異動複寫作為移轉解決方案。 若要使用此方法,來源資料庫必須符合異動複寫需求且與 Azure SQL Database 相容。 如需 SQL 複寫搭配可用性群組的詳細資訊,請參閱設定 Always On 可用性群組 (SQL Server) 的複寫

若要使用此解決方案,您需將 Azure SQL Database 中的資料庫設定為想要移轉 SQL Server 執行個體的訂閱者。 異動複寫散發者會在繼續進行新異動的同時,從要被同步處理的資料庫 (發行者) 同步處理資料。

使用異動複寫時,對您資料或結構描述所做的一切變更都會顯示在 Azure SQL Database 中的資料庫內。 同步處理完成且您已準備好進行移轉之後,請將您應用程式的連接字串變更成指向您的資料庫。 一旦異動複寫清空留在來源資料庫上的所有變更,並且您的所有應用程式都指向 Azure SQL Database 之後,您便可以將異動複寫解除安裝。 您 Azure SQL Database 中的資料庫現在已是您的生產環境系統。

提示

您也可以使用異動複寫以移轉來源資料庫的子集。 您複寫至 Azure SQL Database 的發佈可以限制為複寫的資料庫中資料表的子集。 針對要複寫的每一個資料表,您可以將資料限制在資料列的子集和 (或) 資料行的子集。

異動複寫流程

重要

請使用最新版的 SQL Server Management Studio 以便與 Azure 及 SQL Database 更新保持同步。 舊版 SQL Server Management Studio 無法將 SQL Database 設定為訂閱者。 取得最新版 SQL Server Management Studio

步驟 方法
設定散發 SQL Server Management Studio | Transact-SQL
建立發行 SQL Server Management Studio | Transact-SQL
建立訂用帳戶 SQL Server Management Studio | Transact-SQL

一些秘訣和移轉至 SQL Database 的差異

  • 使用本機散發者
    • 這麼做會影響伺服器的效能。
    • 如果無法接受效能受到影響,您可以使用另一部伺服器,但這會增加管理和系統管理的複雜度。
  • 當選取快照集資料夾時,請確定您選取的資料夾足以容納要複寫的每個資料表 BCP。
  • 建立快照集會鎖定相關聯的資料表直到建立完成為止,因此請適當排程快照集。
  • Azure SQL Database 僅支援推送訂用帳戶。 您只能從來源資料庫新增訂閱者。

移轉建議

若要加速移轉至 Azure SQL Database,您應該考慮下列建議:

資源爭用 建議
來源 (通常為內部部署) 在移轉期間,來源的主要瓶頸是資料檔案 I/O 和延遲性,這需要謹慎監視。 根據資料檔案 I/O 和延遲性,以及視其為虛擬機器或是實體伺服器,您可能必須與儲存體管理員合作,探索可緩減該瓶頸的選項。
目標 (Azure SQL Database) 最大的限制因素是記錄產生速率和資料庫記錄檔的延遲性。 透過 Azure SQL Database,您可以取得高達 96 MB/s 的記錄產生速率。 若要加速移轉,請將目標 Azure SQL 資料庫擴大為業務關鍵、Gen5、8 個虛擬核心,以取得 96 MB/s 的最高記錄產生速率,以及記錄檔的低延遲性。 無論選擇的服務層級為何,超大規模資料庫服務層級都提供 100 MB/s 的記錄速率。
Network 所需的網路頻寬等於最高記錄內嵌速率 96 MB/s (768 Mb/s) 您可以根據從內部部署資料中心到 Azure 的網路連線,來檢查您的網路頻寬 (通常是 Azure ExpressRoute),以適應最大的記錄內嵌速率。

您也可以考慮這些建議,以在移轉程序期間中獲得最佳效能。

  • 選擇預算許可的最高服務層級和計算大小,以獲得最大傳輸效能。 移轉完成後,您可以縮小層級以節省成本。
  • 如果您使用 BACPAC 檔案,盡量縮短 BACPAC 檔案和目的地資料中心之間的距離。
  • 在移轉期間停用自動更新並自動建立統計資料。
  • 磁碟分割表格與索引。
  • 捨棄索引檢視表,然後於移轉完成後重新建立。
  • 將鮮少查詢的歷程記錄資料移除到另一個資料庫,然後將此歷程記錄資料移轉至 Azure SQL Database 中不同的資料庫內。 您接著可以使用彈性查詢查詢此歷程記錄資料。

移轉後

在成功完成移轉階段之後,請完成後續的移轉後工作,確保所有項目都能順暢且有效率地運作。

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

更新統計資料

在移轉完成後,執行完整掃描以更新統計資料

修復應用程式

將資料移轉至目標環境之後,先前取用來源的所有應用程式都必須開始取用目標。 在某些情況下,完成這項工作需要對應用程式進行變更。

執行測試

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

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

使用進階功能

請務必利用 SQL Database 所提供的進階雲端式功能,例如內建的高可用性威脅偵測,以及監視和調整您的工作負載

部分 SQL Server 功能只能在資料庫相容性層級變更為最新相容性層級之後使用。

若要深入了解,請參閱在移轉後管理 Azure SQL Database

解決資料庫移轉相容性問題

根據來源資料庫的 SQL Server 版本和移轉的資料庫複雜度,您可能遇到各種相容性的問題。 舊版 SQL Server 有更多的相容性問題。 除了使用您選擇之搜尋引擎的目標網際網路搜尋之外,請使用下列資源︰

重要

「Azure SQL 受控執行個體」可在將相容性問題降到最低至零的情況下,讓您移轉現有的 SQL Server 執行個體及其資料庫。 請參閱什麼是 Azure SQL 受控執行個體?

後續步驟

如需 Microsoft 和第三方服務與工具的對照表,以便了解可協助您處理各種資料庫與資料移轉案例及特殊工作的資源,請參閱資料移轉的服務與工具

若要深入了解 Azure SQL 移轉延伸模組,請參閱:

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

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

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

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

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