教學課程:使用 DMS 將 SQL Server 遷移至在線 Azure SQL 受控執行個體 (傳統)

重要

Azure 資料移轉服務 (傳統) - SQL 案例位於淘汰路徑上。 自 2023 年 8 月 1 日起,您無法再從 Azure 入口網站 建立 SQL Server 案例的新 資料移轉服務 (傳統) 資源。 服務將於 2026 年 3 月 15 日淘汰給所有客戶。 若要順暢地從多個資料庫來源移轉至 Azure SQL 目標,Microsoft 建議使用最新版本的 Azure 資料移轉服務,其可在 Azure Data Studio 中或透過 Azure 入口網站,或透過 Azure PowerShell 和 Azure CLI 作為 Azure SQL 移轉延伸模組。 如需詳細資訊,請參閱淘汰通知:資料移轉服務(傳統)

注意

本教學課程使用舊版的 Azure 資料移轉服務。 如需改善的功能和支援性,請考慮使用適用於 Azure Data StudioAzure SQL 移轉延伸模組移轉至 Azure SQL 受控執行個體。

若要比較版本之間的功能,請檢閱 比較版本

您可以使用 Azure 資料移轉服務,將資料庫從 SQL Server 實例移轉至 Azure SQL 受控執行個體,停機時間最短。 如需可能需要手動處理的額外方法,請參閱 SQL Server 實例移轉至 Azure SQL 受控執行個體 一文

在本教學課程中,您會使用 Azure 資料移轉服務,將 AdventureWorks2016 資料庫從內部部署 SQL Server 實例移轉至 SQL 受管理執行個體。

您將學習如何:

  • 註冊 Azure DataMigration 資源提供者。
  • 建立 Azure 資料庫移轉服務的執行個體。
  • 使用 Azure 資料移轉服務 建立移轉專案並開始在線移轉。
  • 監視移轉。
  • 當您準備好時,請執行移轉完全移轉。

重要

若要使用 Azure 資料移轉服務 從 SQL Server 在線移轉至 SQL 受管理執行個體,您必須在 SMB 網路共用中提供服務可用來移轉資料庫的完整資料庫備份和後續記錄備份。 Azure 資料移轉服務 不會起始任何備份,而是使用您可能已經擁有的現有備份作為移轉災害復原計劃的一部分。 每個備份都可寫入至個別的備份檔案或多個備份檔案。 不過,不支援將多個備份 (也就是完整和 t-log) 附加至單一備份媒體。 使用壓縮備份來降低與移轉大型備份相關聯的潛在問題的可能性。

注意

使用 Azure 資料移轉服務 執行在線移轉需要根據 進階版 定價層建立實例。

重要

為了獲得最佳移轉體驗,Microsoft 建議在與目標資料庫相同的 Azure 區域中建立 Azure 資料移轉服務 實例。 跨區域或地理位置行動數據可能會減緩移轉程式,並引入錯誤。

重要

盡可能減少在線移轉程式的持續時間,以將實例重新設定或計劃性維護所造成的中斷風險降到最低。 如果是這類事件,移轉程式會從頭開始。 如果是計劃性維護,則移轉程式重新啟動前有 36 小時的寬限期。

提示

在 Azure 資料移轉服務 中,您可以將資料庫離線或在線時移轉。 在離線移轉中,應用程式停機會在移轉啟動時啟動。 若要將停機時間限制在移轉之後要切換至新環境所花費的時間,請使用 在線 移轉。 建議您測試離線移轉,以判斷是否可接受的停機時間。 如果無法接受預期的停機時間,請執行在線移轉。

本文說明從 SQL Server 在線移轉至 SQL 受管理執行個體。 如需脫機移轉,請參閱使用 DMS 將 SQL Server 移轉至離線 SQL 受管理執行個體。

必要條件

若要完成本教學課程,您需要:

  • 下載並安裝 SQL Server 2016 或更新版本

  • 依照啟用或停用伺服器網路協定一文 中的指示,啟用預設在 SQL Server Express 安裝期間停用的 TCP/IP 通訊協定

  • 將 AdventureWorks2016 資料庫還原至 SQL Server 實例。

  • 使用 Azure Resource Manager 部署模型建立適用於 Azure 資料庫移轉服務的 Microsoft Azure 虛擬網路,此模型會使用 ExpressRouteVPN 提供內部部署來源伺服器的站對站連線。 瞭解使用 Azure 資料移轉服務 進行 SQL 受管理執行個體 移轉的網路拓撲。 如需建立虛擬網路的詳細資訊,請參閱 虛擬網絡 檔,特別是包含逐步詳細數據的快速入門文章。

    注意

    在虛擬網路設定期間,如果您使用 ExpressRoute 搭配網路對等互連至 Microsoft,請將下列服務 端點 新增至將布建服務的子網:

    • 目標資料庫端點 (例如,SQL 端點、Azure Cosmos DB 端點等)
    • 儲存體端點
    • 服務匯流排端點

    此為必要設定,因為 Azure 資料庫移轉服務沒有網際網路連線。

    如果您在內部部署網路與 Azure 之間沒有站對站連線,或有有限的站對站連線頻寬,請考慮在混合模式中使用 Azure 資料移轉服務 (預覽)。 混合模式會利用內部部署移轉背景工作角色,以及雲端中執行的 Azure 資料移轉服務 實例。 若要在混合模式中建立 Azure 資料移轉服務 實例,請參閱使用 Azure 入口網站 在混合模式中建立 Azure 資料移轉服務 實例一文

    重要

    關於作為移轉一部分使用的記憶體帳戶,您必須:

    • 選擇允許所有網路存取記憶體帳戶。
    • 在 MI 子網上開啟子網委派,並更新 儲存體 帳戶防火牆規則以允許此子網。
    • 您無法使用具有具有 Azure 資料移轉服務 私人端點的 Azure 儲存體 帳戶。
  • 請確定您的虛擬網路網路安全組規則不會封鎖 ServiceBus、儲存體 和 AzureMonitor 的 ServiceTag 輸出埠 443。 如需虛擬網路 NSG 流量篩選的詳細資訊,請參閱<使用網路安全性群組來篩選網路流量>(機器翻譯) 一文。

  • 設定用於來源資料庫引擎存取的 Windows 防火牆

  • 開啟 Windows 防火牆以允許 Azure 資料移轉服務 存取來源 SQL Server,預設為 TCP 連接埠 1433。 如果您的預設實例正在接聽其他埠,請將它新增至防火牆。

  • 如果您使用動態埠執行多個具名 SQL Server 實例,您可能想要啟用 SQL Browser 服務,並允許透過防火牆存取 UDP 連接埠 1434,讓 Azure 資料移轉服務 可以連線到來源伺服器上的具名實例。

  • 如果您在源資料庫前面使用防火牆設備,您可能需要新增防火牆規則,以允許 Azure 資料移轉服務 存取源資料庫進行移轉,以及透過SMB埠445的檔案。

  • 依照在 Azure 入口網站 中建立 SQL 受管理執行個體 一文中的詳細數據建立 SQL 受管理執行個體。

  • 確定用來連接來源 SQL Server 和目標 SQL 受管理執行個體 的登入是系統管理員伺服器角色的成員。

  • 提供SMB網路共用,其中包含所有資料庫完整資料庫備份檔和後續事務歷史記錄備份檔,Azure 資料移轉服務 可用於資料庫移轉。

  • 確認執行來源 SQL Server 執行個體的服務帳戶在您所建立的網路共用上具有寫入權限,而且來源伺服器的電腦帳戶對相同的共用具備讀取/寫入存取權。

  • 記下您先前建立之網路共用上具有完整控制許可權的 Windows 使用者(和密碼)。 Azure 資料移轉服務 模擬使用者認證,將備份檔上傳至 Azure 儲存體 容器以進行還原作業。

  • 建立 Microsoft Entra 應用程式識別碼,以產生應用程式識別符密鑰,Azure 資料移轉服務 可用來連線到目標 Azure SQL 受控執行個體 和 Azure 儲存體 容器。 如需詳細資訊,請參閱使用入口網站建立可存取資源的 Microsoft Entra 應用程式和服務主體一文

    注意

    Azure 資料移轉服務 所使用的應用程式識別碼支援服務主體的秘密(密碼型)驗證。 但不支援憑證型驗證。

    注意

    Azure 資料移轉服務 需要指定應用程式識別碼之訂用帳戶的參與者許可權。 或者,您可以建立自定義角色,授與 Azure 資料移轉服務 需要的特定許可權。 如需使用自定義角色的逐步指引,請參閱 SQL Server 自定義角色一文,以 SQL 受管理執行個體 在線移轉

  • 建立或記下標準效能層級 Azure 儲存體 帳戶,可讓 DMS 服務將資料庫備份檔上傳至並用於移轉資料庫。 請務必在與 Azure 資料移轉服務 實例相同的區域中建立 Azure 儲存體 帳戶。

    注意

    當您使用在線移轉將受 透明資料加密 保護的資料庫移轉至受控實例時,必須先移轉來自內部部署或 Azure VM SQL Server 實例的對應憑證,才能還原資料庫。 如需詳細步驟,請參閱將 TDE 憑證移轉至受控執行個體

註冊資源提供者

在您建立第一個 資料移轉服務 實例之前,請先註冊 Microsoft.DataMigration 資源提供者。

  1. 登入 Azure 入口網站。 搜尋並選取訂閱

    Show portal subscriptions

  2. 選取您要在其中建立 Azure 資料移轉服務 實例的訂用帳戶,然後選取 [資源提供者]。

    Show resource providers

  3. 搜尋移轉,然後選取 [註冊Microsoft.DataMigration]。

    Register resource provider

建立 Azure 資料庫移轉服務執行個體

  1. 在 [Azure 入口網站] 功能表中或 [首頁] 頁面上,選取 [建立資源]。 搜尋並選取 [Azure 資料移轉服務]。

    Azure Marketplace

  2. [Azure 資料移轉服務] 畫面上,選取 [建立]。

    Create Azure Database Migration Service instance

    選取適當的 [來源伺服器類型] 和 [目標伺服器類型],然後選擇 [資料移轉服務 [傳統] 選項。

    Select Database Migration Service (Classic) scenario

  3. 在 [ 建立移轉服務 基本概念] 畫面上:

    • 選取訂用帳戶。
    • 建立新的資源群組,或選擇現有的資源群組。
    • 指定 Azure 資料移轉服務 實例的名稱。
    • 選取您要在其中建立 Azure 資料移轉服務 實例的位置。
    • 選擇 [Azure ] 作為服務模式。
    • 選取定價層。 如需成本和定價層的詳細資訊,請參閱 定價頁面

    Configure Azure Database Migration Service instance basics settings

    • 選取 [下一步:網路]
  4. 在 [ 建立移轉服務 網络] 畫面上:

    • 選取現有的虛擬網路或建立新的虛擬網路。 虛擬網路提供 Azure 資料移轉服務 來源伺服器和目標實例的存取權。 如需如何在 Azure 入口網站 中建立虛擬網路的詳細資訊,請參閱使用 Azure 入口網站 建立虛擬網路一文

    Configure Azure Database Migration Service instance networking settings

    • 選取 [ 檢閱 + 建立 ] 以檢閱詳細數據,然後選取 [ 建立 ] 以建立服務。

    • 幾分鐘后,Azure 資料庫移轉服務的實例就會建立並可供使用:

    Migration service created

建立移轉專案

建立服務的實例之後,請在 Azure 入口網站 內找到它、開啟它,然後建立新的移轉專案。

  1. 在 [Azure 入口網站] 功能表中,選取 [所有服務]。 搜尋並選取 [Azure 資料移轉服務]。

    Locate all instances of Azure Database Migration Service

  2. [Azure 資料移轉服務] 畫面上,選取您所建立 Azure 資料移轉服務 實例。

  3. 選取 [新增移轉專案]

    Locate your instance of Azure Database Migration Service

  4. 在 [新增移轉專案] 畫面上,指定專案的名稱,在 [來源伺服器類型] 文本框中,選取 [SQL Server],在 [目標伺服器類型] 文本框中,選取 [Azure SQL 資料庫 受控執行個體],然後針對 [選擇活動類型],選取 [在線數據遷移]。

    Create Database Migration Service Project

  5. 選取 [建立並執行活動 ] 以建立專案並執行移轉活動。

指定來源詳細資料

  1. 在 [ 選取來源] 畫面上,指定來源 SQL Server 實例的連線詳細數據。

    請務必針對來源 SQL Server 實例名稱使用完整功能變數名稱 (FQDN)。 如果無法解析 DNS 名稱,您也可以使用 IP 位址。

  2. 如果您尚未在伺服器上安裝信任的憑證,請選取 [信任伺服器憑證] 核取方塊。

    未安裝受信任的憑證時,SQL Server 會在啟動實例時產生自我簽署憑證。 此憑證用來加密客戶端連線的認證。

    警告

    使用自我簽署憑證加密的 TLS 連線不提供強式安全性。 這種連線容易受到攔截式攻擊。 您不應該依賴在生產環境或連線到因特網的伺服器中使用自我簽署憑證的 TLS。

    Source Details

  3. 選取 [下一步:選取目標]

指定目標詳細資料

  1. 在 [選取目標] 畫面上,指定 DMS 實例可用來連線到 SQL 受管理執行個體 和 Azure 儲存體 帳戶的目標實例的應用程式識別碼和密鑰。

    如需詳細資訊,請參閱使用入口網站建立可存取資源的 Microsoft Entra 應用程式和服務主體一文

  2. 選取包含 SQL 受管理執行個體 目標實例的訂用帳戶,然後選擇目標 SQL 受控實例。

    如果您尚未布建 SQL 受管理執行個體,請選取連結以協助您布建實例。 當 SQL 受管理執行個體 準備就緒時,請返回此特定專案以執行移轉。

  3. 提供 SQL 使用者密碼以連線到 SQL 受管理執行個體。

    Select Target

  4. 選取 [下一步:選取資料庫]

指定源資料庫

  1. 在 [ 選取資料庫] 畫面上,選取您要移轉的源資料庫。

Select Source Databases

重要

如果您使用 SQL Server Integration Services (SSIS),DMS 目前不支援將 SSIS 專案/套件的目錄資料庫從 SQL Server 遷移至 SQL 受管理執行個體。 不過,您可以在 Azure Data Factory 中布建 SSIS,並將 SSIS 專案/套件重新部署至 SQL 受管理執行個體 所裝載的目的地 SSISDB。 如需移轉 SSIS 套件的詳細資訊,請參閱將 SQL Server Integration Services 套件移轉至 Azure 一文

  1. 選取 [ 下一步:設定移轉設定]。

進行移轉設定

  1. 在 [設定移轉設定] 畫面上,提供下列詳細資料:

    參數 描述
    SMB 網路位置共用 本機 SMB 網路共用或 Azure 檔案共用,其中包含 Azure 資料移轉服務 可用於移轉的完整資料庫備份檔和事務歷史記錄備份檔。 執行來源 SQL Server 實例的服務帳戶必須具有此網路共用的讀取\寫入許可權。 在網路共用中提供伺服器的 FQDN 或 IP 位址,例如 '\\servername.domainname.com\backupfolder' 或 '\\IP address\backupfolder'。 為了提升效能,建議針對要移轉的每個資料庫使用不同的資料夾。 您可以使用 [進階 設定] 選項來提供資料庫層級檔案共享路徑。 如果您在連線到SMB共用時遇到問題,請參閱 SMB共用
    使用者名稱 請確定 Windows 使用者對於您先前提供的網路共用具有完整控制權限。 Azure 資料移轉服務 模擬使用者認證,將備份檔上傳至 Azure 儲存體 容器以進行還原作業。 如果使用 Azure 檔案共用,請使用前面加上 AZURE\ 的記憶體帳戶名稱作為用戶名稱。
    密碼 使用者的密碼。 如果使用 Azure 檔案共用,請使用記憶體帳戶密鑰作為密碼。
    Azure 儲存體 帳戶的訂用帳戶 選取包含 Azure 儲存體帳戶的訂用帳戶。
    Azure 儲存體帳戶 選取 DMS 可以從 SMB 網路共享上傳備份檔並用於資料庫移轉的 Azure 儲存體 帳戶。 建議您在與 DMS 服務相同的區域中選取 儲存體 帳戶,以獲得最佳檔案上傳效能。

    Configure Migration Settings

    注意

    如果 Azure 資料移轉服務 顯示錯誤「系統錯誤 53」或「系統錯誤 57」,則可能是因為無法 Azure 資料移轉服務 存取 Azure 檔案共用。 如果您遇到其中一個錯誤,請使用這裡的指示,從虛擬網路授與記憶體帳戶的存取權。

    重要

    如果啟用回送檢查功能,且來源 SQL Server 和檔案共用位於同一部電腦上,則來源將無法使用 FQDN 存取檔案。 若要修正此問題,請使用這裡的指示停用回送檢查功能。

  2. 選取 [ 下一步:摘要]。

檢閱移轉摘要

  1. 在 [摘要] 畫面的 [活動名稱] 文本框中,指定移轉活動的名稱。

  2. 檢閱並確認與移轉專案相關聯的詳細資料。

    Migration project summary

執行並監視移轉

  1. 選取 [ 開始移轉]。

  2. [移轉活動] 視窗隨即顯示目前的資料庫移轉狀態。 選取 [ 重新整理 ] 以更新顯示。

    Migration activity in progress

    您可以進一步展開資料庫和登入類別,以監視個別伺服器物件的移轉狀態。

    Migration activity status

執行完全移轉

在 SQL 受管理執行個體 的目標實例上還原完整資料庫備份之後,資料庫就可用來執行移轉完全移轉。

  1. 當您準備好要完成線上資料庫移轉後,請選取 [開始完全移轉]

  2. 停止對來源資料庫傳入任何流量。

  3. 取得 [尾日誌備份],讓備份檔可在SMB網络共用中使用,然後等到還原此最終事務歷史記錄備份為止。

    此時,您會看到 擱置中的變更 設定為 0。

  4. 選取 [確認],然後選取 [套用]

    Preparing to complete cutover

    重要

    完全移轉之後,使用 業務關鍵 服務層級的 SQL 受管理執行個體 可用性只能比一般用途長得多,因為必須植入 AlwaysOn 高可用性群組的三個次要複本。 此作業持續時間取決於數據大小,如需詳細資訊,請參閱 管理作業持續時間

  5. 當資料庫移轉狀態顯示 [已完成] 時,請將您的應用程式連線到新的目標實例 SQL 受管理執行個體。

    Cutover complete

其他資源

  • 如需示範如何使用 T-SQL RESTORE 命令將資料庫移轉至 SQL 受管理執行個體 的教學課程,請參閱使用 restore 命令將備份還原至 SQL 受管理執行個體。
  • 如需 SQL 受管理執行個體 的相關信息,請參閱什麼是 SQL 受管理執行個體
  • 如需將應用程式連線到 SQL 受管理執行個體的相關信息,請參閱 連線 應用程式