移轉指南:SQL Server 至 Azure SQL 受控執行個體

適用於:Azure SQL 受控執行個體

本指南可協助您將 SQL Server 執行個體移轉至 Azure SQL 受控執行個體。

您可以移轉在內部部署或下列項目上執行的 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)

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

Migration process flow

必要條件

若要將您的 SQL Server 移轉至 Azure SQL 受控執行個體,請確定您已經:

移轉前

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

探索

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

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

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

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

探索到資料來源之後,請評定可移轉至 Azure SQL 受控執行個體的任何內部部署 SQL Server 執行個體,以找出移轉封鎖程式或相容性問題。 請繼續進行下列步驟,以評定資料庫,並將其移轉至 Azure SQL 受控執行個體:

Steps for migration to Azure SQL Managed Instance

評定

注意

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

判斷 SQL 受控執行個體是否與您應用程式的資料庫需求相容。 SQL 受控執行個體旨在為大部分使用 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 受控執行個體
  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 受控執行個體
  6. 瀏覽至 Azure 建議區段,按一下 [取得 Azure 建議]
  7. 選取 [立即收集效能資料]。 選取本機電腦上的資料夾以儲存效能記錄,然後選取 [開始]。
  8. 10 分鐘之後,Azure Data Studio 會指出可用於 Azure SQL 受控執行個體的建議。
  9. 在 Azure SQL 目標面板中查看 Azure SQL 受控執行個體卡片,以檢閱您 Azure SQL 受控執行個體 SKU 建議

若要深入了解,請參閱教學課程:使用 Azure Data Studio 將 SQL Server 線上移轉至 Azure SQL 受控執行個體 (機器翻譯)

若要深入了解,請參閱教學課程:使用 Azure Data Studio 將 SQL Server 離線移轉至 Azure SQL 受控執行個體 (機器翻譯)

如果評量遭遇多個阻礙,進而確認您的資料庫尚未針對 Azure SQL 受控執行個體準備好,則另請考慮:

可調整規模的評量與分析

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

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

重要

您也可以使用 DMA 的命令列公用程式自動執行多個資料庫的評量,這也可以將結果上傳至 Azure Migrate,藉以供進一步分析和目標整備度。

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

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

根據探索和評量階段中的資訊,建立適當大小的目標 SQL 受控執行個體。 作法是使用 Azure 入口網站PowerShellAzure Resource Manager (ARM) 範本

SQL 受控執行個體專為打算移至雲端的內部部署工作負載量身訂做。 它引進購買模型,提供更大的彈性來選取適合您工作負載的正確資源層級。 在內部部署的環境中,您可能已經習慣使用實體核心數目與 IO 頻寬來調整這些工作負載的大小。 受控執行個體的購買模型是以虛擬核心 (或 vCore) 為基礎,再個別加上額外儲存體與可用 IO。 相對於目前使用的內部部署方案,VCore 模型可讓您較簡單地了解雲端中的計算需求。 這個購買模型可讓您在雲端中具有正確大小的目的地環境。 以下說明一些可協助您選擇正確服務層級和特性的一般指導方針:

  • 根據基準 CPU 使用量,您可以佈建與您在 SQL Server 上使用的核心數目相符的受控執行個體;請注意,您可能需要調整 CPU 特性以符合已安裝受控執行個體的 VM 特性
  • 根據基準記憶體使用量,選擇具有相符記憶體的服務層。 由於無法直接選擇記憶體數量,因此您必須選取虛擬核心數量與記憶體相符的受控執行個體 (例如,標準系列 (Gen5) 中的 5.1 GB/虛擬核心)。
  • 根據檔案子系統的基準 IO 延遲,選擇一般用途 (延遲大於 5 毫秒) 與業務關鍵 (延遲小於 3 毫秒) 服務層。
  • 根據基準輸送量,預先配置資料或記錄檔的大小,以取得預期的 IO 效能。

您可以在部署時選擇計算和儲存體資源,然後在不使用 Azure 入口網站為您的應用程式產生停機的情況下進行變更:

Managed Instance Sizing

若要了解如何建立 VNet 基礎結構和受控執行個體,請參閱建立受控執行個體

重要

請務必讓目的地 VNet 和子網路符合受控執行個體 VNet 需求。 任何相容性問題都可能會讓您無法建立新的執行個體,或使用已經建立的執行個體。 深入了解建立新的 設定現有的 網路。

移轉

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

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

SQL 受控執行個體鎖定的是需要將大量資料庫從內部部署或 Azure VM 資料庫實作移轉的使用者案例。 如果您需要隨即轉移定期使用執行個體層級和/或跨資料庫功能的應用程式後端,則這是最佳選擇。 如果這符合您的使用案例,則可將整個執行個體移動至 Azure 中的對應環境,不需要重新建構應用程式。

若要移動 SQL 執行個體,您需要謹慎規劃下列作業:

  • 移轉所有需要共置的資料庫 (在相同執行個體上執行的資料庫)。
  • 移轉您應用程式依賴的執行個體層級物件,包括登入、認證、SQL Agent 工作和運算子,以及伺服器層級觸發程序。

SQL 受控執行個體是一種受控服務,可讓您將一些固定的內建 DBA 活動委派至平台。 由於已內建高可用性,因此不需要移轉某些執行個體層級的資料,例如,定期備份的維護作業或 Always On 組態。

本文涵蓋兩個建議的移轉做法:

  • 適用 Azure Data Studio 的 Azure SQL 移轉延伸模組 - 可在幾乎不導致停機的情況下完成移轉。
  • 原生RESTORE DATABASE FROM URL - 從 SQL Server 使用原生備份且需要一些停機時間。

本指南說明兩個最常見的做法 - Azure 資料庫移轉服務 (DMS) 以及原生備份與還原。

如需其他移轉工具,請參閱移轉做法比較

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

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

  1. 下載並安裝 Azure Data StudioAzure SQL 移轉延伸模組
  2. 在 Azure Data Studio 的延伸模組中,啟動移轉至 Azure SQL 移轉精靈。
  3. 選取資料庫以進行評定,並檢視移轉整備程度或是否其他任何問題。 此外,請收集效能資料,並取得正確大小的 Azure 建議。
  4. 從您的月租方案選取 Azure 帳戶和目標 Azure SQL 受控執行個體。
  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 受控執行個體中的目標資料庫。
    3. 針對指定備份位置中的來源資料庫,進行結尾記錄備份。
    4. 請確定所有資料庫備份都具有「監視詳細資料」頁面中的「還原」狀態。
    5. 選取監視詳細資料頁面中的 [完成完全移轉]。

備份與還原

Azure SQL 受控執行個體具備一項關鍵功能,可快速輕鬆地進行資料庫移轉,即對儲存在 Azure 儲存體上的資料庫備份 (.bak) 檔案進行原生還原。 備份和還原會根據資料庫的大小進行非同步作業。

下圖會提供程序的高階概觀:

Diagram shows SQL Server with an arrow labeled BACKUP / Upload to URL flowing to Azure Storage and a second arrow labeled RESTORE from URL flowing from Azure Storage to a SQL Managed Instance.

注意

進行備份、將其上傳至 Azure 儲存體並對 Azure SQL 受控執行個體執行原生還原作業的時間是根據資料庫的大小。 請將足夠的停機納入考慮,以顧及大型資料庫的作業。

視您所執行的來源 SQL Server 版本而定,下表提供可用方法的詳細資訊:

步驟 SQL 引擎和版本 備份/還原方法
將備份放至 Azure 儲存體 2012 SP1 CU2 之前 直接將 .bak 檔案上傳至 Azure 儲存體
2012 SP1 CU2 - 2016 使用已被取代的 WITH CREDENTIAL 語法直接備份
2016 和更新版本 使用 WITH SAS CREDENTIAL 直接備份
從 Azure 儲存體還原至受控執行個體 使用 SAS 認證從 URL 還原

重要

  • 使用原生還原選項將受到透明資料加密保護的資料庫移轉至受控執行個體時,需要在資料庫還原之前移轉來自內部部署或 Azure VM SQL Server 的對應憑證。 如需詳細步驟,請參閱將 TDE 憑證移轉至受控執行個體
  • 不支援系統資料庫還原。 若要移轉執行個體層級物件 (儲存在 mastermsdb 資料庫中),建議透過指令碼來找出這些物件,並在目的地執行個體上執行 T-SQL 指令碼。

若要使用備份和還原進行移轉,請遵循下列步驟:

  1. 將資料庫備份至 Azure Blob 儲存體。 例如,在 SQL Server Management Studio 中使用備份至 URL。 使用 Microsoft Azure 工具支援早於 SQL Server 2012 SP1 CU2 的資料庫。

  2. 使用 SQL Server Management Studio 連線至 Azure SQL 受控執行個體。

  3. 使用共用存取簽章建立認證,以針對您的資料庫備份存取您的 Azure Blob 儲存體帳戶。 例如:

    CREATE CREDENTIAL [https://mitutorials.blob.core.windows.net/databases]
    WITH IDENTITY = 'SHARED ACCESS SIGNATURE'
    , SECRET = 'sv=2017-11-09&ss=bfqt&srt=sco&sp=rwdlacup&se=2028-09-06T02:52:55Z&st=2018-09-04T18:52:55Z&spr=https&sig=WOTiM%2FS4GVF%2FEEs9DGQR9Im0W%2BwndxW2CQ7%2B5fHd7Is%3D'
    
  4. 從 Azure 儲存體 Blob 容器還原備份。 例如:

    RESTORE DATABASE [TargetDatabaseName] FROM URL =
      'https://mitutorials.blob.core.windows.net/databases/WideWorldImporters-Standard.bak'
    
  5. 還原完成後,請在 SQL Server Management Studio 內的 [物件總管] 檢視資料庫。

若要深入了解此移轉選項,請參閱使用 SSMS 將資料庫還原至 Azure SQL 受控執行個體

注意

資料庫還原為非同步作業,而且可以重試。 如果連線中斷或逾時已過期,您可能會在 SQL Server Management Studio 中收到錯誤。 Azure SQL Database 將會繼續嘗試在背景還原資料庫,而且您可以使用 sys.dm_exec_requestssys.dm_operation_status 檢視追蹤還原進度。

資料同步和完全移轉

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

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

重要

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

移轉後

確實完成移轉階段之後,仍需進行一系列後續移轉工作,以確保所有項目都能順暢且有效率地運作。

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

監視和補救應用程式

完成移轉至受控執行個體的作業後,應追蹤工作負載的應用程式行為和效能。 此程序包括下列活動:

執行測試

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

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

使用進階功能

您可以利用 SQL 受控執行個體所提供的進階雲端式功能,例如,內建高可用性威脅偵測,以及監視和微調工作負載

Azure SQL 分析可讓您集中監視大量受控執行個體。

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

後續步驟