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

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

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

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

  • 虛擬機器上的 SQL Server
  • Amazon Web Services (AWS) EC2
  • 計算引擎 (Google Cloud Platform - GCP)
  • 適用於 SQL Server 的 Cloud SQL (Google Cloud Platform – GCP)

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

移轉程序流程

必要條件

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

移轉前

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

探索

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

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

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

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

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

移轉至Azure SQL 受控執行個體的步驟

評定

注意

如果您正在大規模評定 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 受控執行個體建議,進而 (以最低價格) 符合工作負載的效能需求。

您也可以使用 Data Migration Assistant (4.1 版和更新版本) 來評估資料庫,以便取得:

若要使用資料庫移轉評量來評定您的環境,請遵循下列步驟:

  1. 開啟 Data Migration Assistant (DMA)
  2. 選取 [檔案],然後選擇 [新增評量]。
  3. 指定專案名稱、選取 SQL Server 作為來源伺服器類型,然後選取 Azure SQL 受控執行個體作為目標伺服器類型。
  4. 選取您想要產生的評量報告類型。 例如,資料庫相容性和功能同位。 根據評量的類型,來源 SQL Server 所需的權限可能會不同。 DMA 將會醒目提示選擇的建議程式在執行評量前所需的權限。
    • 「功能同位」類別提供一組完整的建議、Azure 中可使用的替代方法以及補救步驟,協助您規劃移轉專案。 (需要 sysadmin 權限)
    • 相容性問題類別可識別出可能會阻礙移轉的局部支援或不支援的功能相容性問題,並提供解決這些問題的建議 (需要 CONNECT SQLVIEW SERVER STATEVIEW ANY DEFINITION 權限)。
  5. 指定 SQL Server 的來源連線詳細資料,並連線至來源資料庫。
  6. 選取 [啟動評量]。
  7. 程序完成時,請選取並檢閱評量報告以了解移轉封鎖和功能同位問題。 您也可以將評量報告匯出至可與組織中其他小組或人員共用的檔案。
  8. 判斷最小化移轉後工作的資料庫相容性層級。
  9. 針對您的內部部署工作負載,找出最佳的 Azure SQL 受控執行個體 SKU。

若要深入了解,請參閱使用 Data Migration Assistant 執行 SQL Server 移轉評量

如果 SQL 受控執行個體不適用於您的工作負載,不妨考慮以 Azure VM 上的 SQL Server 作為業務營運的替代方案。

可調整規模的評量與分析

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

Data Migration Assistant 也支援評量報告的彙總,以利進行分析。 如果您需要對多個伺服器和資料庫進行大規模評量與分析,以提供更廣泛的資料資產檢視,請參閱下列連結,進一步了解詳情。

重要

您也可以使用 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 特性
  • 根據基準記憶體使用量,選擇具有相符記憶體的服務層。 由於記憶體數量無法直接進行選擇,因此您必須選取虛擬核心數量與記憶體相符的受控執行個體 (例如,第 5 代中的 5.1 GB/虛擬核心)。
  • 根據檔案子系統的基準 IO 延遲,選擇一般用途 (延遲大於 5 毫秒) 與業務關鍵 (延遲小於 3 毫秒) 服務層。
  • 根據基準輸送量,預先配置資料或記錄檔的大小,以取得預期的 IO 效能。

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

受控執行個體調整大小

若要了解如何建立 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) 檔案進行原生還原。 備份和還原會根據資料庫的大小進行非同步作業。

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

此圖顯示SQL Server箭號標示為 BACKUP/ Upload to URL 流向 Azure 儲存體,第二個箭號標示為 RESTORE 從 Azure 儲存體流向 SQL 受管理執行個體。

注意

進行備份、將其上傳至 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) 之後使用。

後續步驟