教學課程:在 Azure Data Studio 中將 SQL Server 遷移至線上Azure SQL 受控執行個體

使用 Azure Data Studio 中的 Azure SQL 移轉延伸模組,將資料庫從 SQL Server 實例移轉至 Azure SQL 受控執行個體 ,停機時間最短。 如需可能需要手動處理的方法,請參閱 SQL Server 實例移轉至Azure SQL 受控執行個體 一文

在本教學課程中,您會使用 Azure Data Studio 搭配 Azure 資料移轉服務 (DMS) 將 AdventureWorks 資料庫從內部部署 SQL Server 實例遷移 至Azure SQL 受控執行個體。 本教學課程著重于線上移轉模式,其中應用程式停機時間僅限於移轉結束時的簡短截斷。

在本教學課程中,您會了解如何:

  • 在 Azure Data Studio 中啟動移轉至 Azure SQL 精靈
  • 執行來源 SQL Server 資料庫的評估
  • 從來源 SQL Server 收集效能資料
  • 取得最適合您工作負載的Azure SQL 受控執行個體 SKU 建議
  • 指定來源 SQL Server、備份位置和目標Azure SQL 受控執行個體的詳細資料
  • 建立新的Azure 資料移轉服務並安裝自我裝載整合執行時間,以存取來源伺服器和備份
  • 啟動並監視移轉的進度
  • 當您準備好時,請執行移轉完全移轉

重要

準備移轉,並盡可能減少線上移轉程式的持續時間,以將實例重新設定或計劃性維護所造成的中斷風險降到最低。 如果是這類事件,移轉程式會從頭開始。 如果計劃性維護,則會有 36 小時的寬限期,其中目標Azure SQL 受控執行個體設定或維護會在移轉程式重新開機之前保留。

提示

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

本文說明從 SQL Server 線上資料庫移轉至 Azure SQL 受控執行個體。 如需離線資料庫移轉,請參閱 使用 Azure Data Studio 搭配 DMS 將 SQL Server 遷移至離線SQL 受管理執行個體。

必要條件

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

  • 下載並安裝 Azure Data Studio

  • 從 Azure Data Studio Marketplace 安裝 Azure SQL 移轉延伸模組

  • 具有指派給下列其中一個內建角色的 Azure 帳戶:

    • 目標Azure SQL 受控執行個體的參與者(以及儲存體帳戶,以從 SMB 網路共用上傳您的資料庫備份檔案)。
    • 包含目標Azure SQL 受控執行個體或 Azure 儲存體帳戶之 Azure 資源群組的讀者角色。
    • Azure 訂用帳戶的擁有者或參與者角色(如果建立新的 DMS 服務,則為必要角色)。
    • 作為使用上述內建角色的替代方案,您可以指派本文中所 定義的自訂角色。

    重要

    只有在設定移轉步驟,且不需要評定或移轉精靈中的 Azure 建議步驟時,才需要 Azure 帳戶。

  • 建立目標 Azure SQL 受控執行個體

  • 請確定用來連接來源 SQL Server 的 登入是系統管理員 伺服器角色的成員,或具有 CONTROL SERVER 許可權。

  • 針對完整資料庫和交易記錄備份檔案使用下列其中一個儲存體選項:

    • SMB 網路共用
    • Azure 儲存體帳戶檔案共用或 Blob 容器

    重要

    • 適用于 Azure Data Studio 的 Azure SQL 移轉延伸模組不會進行資料庫備份,也不會代表您起始任何資料庫備份。 相反地,服務會使用現有的資料庫備份檔案來進行移轉。
    • 如果您的資料庫備份檔案是在 SMB 網路共用中提供, 請建立可讓 DMS 服務上傳資料庫備份檔案的 Azure 儲存體帳戶 。 請務必在建立與Azure 資料移轉服務實例相同的區域中建立Azure 儲存體帳戶。
    • 每個備份都可寫入至個別的備份檔案或多個備份檔案。 不過,不支援將多個備份 (也就是完整和 t-log) 附加至單一備份媒體。
    • 使用壓縮備份來降低與移轉大型備份相關聯的潛在問題的可能性。
  • 請確定執行來源 SQL Server 實例的服務帳戶具有包含資料庫備份檔案之 SMB 網路共用的讀取和寫入權限。

  • 移轉資料之前,必須先將來源 SQL Server 實例憑證從受 透明資料加密 (TDE) 保護的資料庫移轉至目標Azure SQL 受控執行個體或 Azure 虛擬機器上的 SQL Server。 如需移轉已啟用 TDE 的資料庫的詳細資訊,請參閱 教學課程:在 Azure Data Studio 中將已啟用 TDE 的資料庫移轉至 Azure SQL。

    提示

    如果您的資料庫包含受 Always Encrypted 保護的敏感性資料,使用 Azure Data Studio 搭配 DMS 的移轉程式會自動將您的 Always Encrypted 金鑰移轉至 Azure 虛擬機器上的目標Azure SQL 受控執行個體或 SQL Server。

  • 如果您的資料庫備份位於網路檔案共用中,請提供電腦來安裝 自我裝載整合執行時間 ,以存取和移轉資料庫備份。 移轉精靈會提供下載連結和驗證金鑰,以下載並安裝自我裝載整合執行時間。 在準備移轉時,請確定您打算安裝自我裝載整合執行時間的電腦已啟用下列輸出防火牆規則和功能變數名稱:

    網域名稱 輸出埠 描述
    公用雲端:{datafactory}.{region}.datafactory.azure.net
    *.frontend.clouddatahub.net
    Azure Government: {datafactory}.{region}.datafactory.azure.us
    中國: {datafactory}.{region}.datafactory.azure.cn
    443 自我裝載整合執行時間需要連線到資料移轉服務。
    針對公用雲端中新建立的資料處理站,從自我裝載整合執行時間金鑰中找出 FQDN,格式為 {datafactory}.{region}.datafactory.azure.net 。 針對舊的資料處理站,如果您在自我裝載整合金鑰中看不到 FQDN,請改用 *.frontend.clouddatahub.net。
    download.microsoft.com 443 自我裝載整合執行時間需要下載更新。 如果您已停用自動更新,您可以略過設定此網域。
    *.core.windows.net 443 由連線到 Azure 儲存體帳戶的自我裝載整合執行時間用來從網路共用上傳資料庫備份

    提示

    如果您的資料庫備份檔案已在 Azure 儲存體帳戶中提供,則移轉程式期間不需要自我裝載整合執行時間。

  • 當您使用自我裝載整合執行時間時,請確定安裝執行時間的電腦可以連線到來源 SQL Server 實例,以及備份檔案所在的網路檔案共用。 應啟用輸出埠 445,以允許存取網路檔案共用。 另請參閱 使用自我裝載整合執行時間的建議

  • 如果您是第一次使用 Azure 資料移轉服務,請確定您的訂用帳戶中已註冊 Microsoft.DataMigration 資源提供者。 您可以遵循步驟來 註冊資源提供者

在 Azure Data Studio 中啟動移轉至 Azure SQL 精靈

  1. 開啟 Azure Data Studio,然後選取伺服器圖示以連線到內部部署 SQL Server(或 Azure 虛擬機器上的 SQL Server)。
  2. 在伺服器連線上,以滑鼠右鍵按一下並選取 [ 管理 ]。
  3. 在伺服器的首頁上,選取 [Azure SQL 移 轉擴充功能]。
  4. 在 Azure SQL 移轉儀表板上,選取 [ 移轉至 Azure SQL ] 以啟動移轉精靈。 Launch Migrate to Azure SQL wizard
  5. 精靈的第一頁可讓您啟動新的會話,或繼續先前儲存的會話。 挑選第一個選項來啟動新的會話。

執行資料庫評量、收集效能資料並取得 Azure 建議

  1. 選取要執行評量的資料庫,然後選取 [ 下一步 ]。
  2. 選取 [Azure SQL 受控執行個體] 作為目標。 Assessment confirmation
  3. 選取 [ 檢視/選取 ] 按鈕,以檢視資料庫評量結果的詳細資料、選取要移轉的資料庫,然後選取 [ 確定 ]。 如果評估結果中顯示任何問題,必須先加以補救,才能繼續進行後續步驟。 Database assessment details
  4. 選取 [ 取得 Azure 建議 ] 按鈕。
  5. 選擇 [ 立即 收集效能資料] 選項,然後輸入要收集之效能記錄的路徑,然後選取 [ 開始 ] 按鈕。
  6. Azure Data Studio 現在會收集效能資料,直到您停止收集為止,請按精靈中的 [ 下一步 ] 按鈕,或關閉 Azure Data Studio。
  7. 10 分鐘後,您會看到建議的Azure SQL 受控執行個體設定。 您也可以在初始 10 分鐘後按 [ 重新整理建議 ] 連結,以使用收集的額外資料重新整理建議。
  8. 在上述 Azure SQL 受控執行個體 * 方塊中,選取 [ 檢視詳細資料 ] 按鈕以取得建議的詳細資訊。
  9. 關閉 [檢視詳細資料] 方塊,然後按 [ 下一步] 按鈕。

進行移轉設定

  1. 從對應的下拉式清單中選取您的 訂用帳戶、位置、資源群組,然後選取 [下一步] ,以指定您的Azure SQL 受控執行個體
  2. 選取 [ 線上移 轉] 作為移轉模式。

    注意

    在線上移轉模式中,來源 SQL Server 資料庫可用於讀取和寫入活動,而資料庫備份會在目標Azure SQL 受控執行個體上持續還原。 應用程式停機限制在移轉結束時進行完全移轉的持續時間。

  3. 選取資料庫備份的位置。 您的資料庫備份可以位於內部部署網路共用或 Azure 儲存體 Blob 容器中。

    注意

    如果您的資料庫備份是在內部部署網路共用中提供,DMS 會要求您在精靈的下一個步驟中設定自我裝載整合執行時間。 如果需要自我裝載整合執行時間才能存取源資料庫備份,請檢查備份組的有效性,並將其上傳至您的 Azure 儲存體帳戶。
    如果您的資料庫備份已經在 Azure 儲存體 Blob 容器上,您就不需要設定自我裝載整合執行時間。

  • 針對位於網路共用的備份,請提供來源 SQL Server、來源備份位置、目標資料庫名稱和 Azure 儲存體帳戶的下列詳細資料,以便上傳備份檔案:

    欄位 描述
    來源認證 - 使用者名稱 認證 (Windows / SQL 驗證) 連接到來源 SQL Server 實例,並驗證備份檔案。
    來源認證 - 密碼 認證 (Windows / SQL 驗證) 連接到來源 SQL Server 實例,並驗證備份檔案。
    包含備份的網路共用位置 包含完整和交易記錄備份檔案的網路共用位置。 在移轉程式期間,不會自動忽略不屬於有效備份組的網路共用中任何不正確檔案或備份檔案。
    具有網路共用位置讀取權限的 Windows 使用者帳戶 具有網路共用讀取權限的 Windows 認證(使用者名稱),以擷取備份檔案。
    密碼 具有網路共用讀取權限的 Windows 認證(密碼),以擷取備份檔案。
    目標資料庫名稱 如果您想要在移轉程式期間變更目標上的資料庫名稱,則可以修改目標資料庫名稱。
    儲存體帳戶詳細資料 上傳備份檔案的資源群組和儲存體帳戶。 您不需要建立容器,因為 DMS 會在上傳程式期間自動在指定的儲存體帳戶中建立 Blob 容器。
  • 針對儲存在 Azure 儲存體 Blob 容器中的備份,請從對應的下拉式清單中指定目標資料庫名稱、資源群組、Azure 儲存體帳戶和 Blob 容器的下列詳細資料。

    欄位 描述
    目標資料庫名稱 如果您想要在移轉程式期間變更目標上的資料庫名稱,則可以修改目標資料庫名稱。
    儲存體帳戶詳細資料 備份檔案所在的資源群組、儲存體帳戶和容器。

    重要

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

  • 適用于 Azure Data Studio 的 Azure SQL 移轉延伸模組不再需要Azure 儲存體帳戶網路設定上的特定組態,以將 SQL Server 資料庫移轉至 Azure。 不過,視您的資料庫備份位置和所需的儲存體帳戶網路設定而定,有一些步驟可確保您的資源可以存取Azure 儲存體帳戶。 如需各種移轉案例和網路組態,請參閱下表:

    案例 SMB 網路共用 Azure 儲存體帳戶容器
    從所有網路啟用 沒有額外的步驟 沒有額外的步驟
    從選取的虛擬網路和 IP 位址啟用 請參閱 1a 請參閱 2a
    從選取的虛擬網路和 IP 位址 + 私人端點啟用 請參閱 1b 請參閱 2b

    1a - Azure Blob 儲存體網路設定

    如果您在 Azure VM 上安裝自我裝載整合執行時間 (SHIR),請參閱第 1b 節 - Azure Blob 儲存體網路設定 。 如果您在內部部署網路上安裝了自我裝載整合執行時間 (SHIR),您必須在Azure 儲存體帳戶中新增主機電腦的用戶端 IP 位址,以便:

    Screenshot that shows the storage account network details

    若要套用此特定設定,請從 SHIR 電腦連線到Azure 入口網站,開啟 [Azure 儲存體帳戶設定],選取 [網路] ,然後標示 [ 新增用戶端 IP 位址 ] 核取方塊。 選取 [ 儲存 ] 進行變更持續性。 如需其餘步驟,請參閱第 2a 節 - Azure Blob 儲存體網路組態(私人端點)。

    1b - Azure Blob 儲存體網路設定

    如果您的 SHIR 裝載在 Azure VM 上,您必須將 VM 的虛擬網路新增至 Azure 儲存體 帳戶,因為虛擬機器有無法新增至 IP 位址範圍區段的非公用 IP 位址。

    Screenshot that shows the storage account network firewall configuration.

    若要套用此特定設定,請從 [資料儲存體 ] 面板選取 [網路 ],然後標示 [ 新增現有的虛擬網路 ] 核取方塊,找出您的Azure 儲存體帳戶。 隨即開啟新的面板,選取裝載 Integration Runtime 之 Azure VM 的訂用帳戶、虛擬網路和子網。 您可以在 Azure 虛擬機器的 [概觀 ] 頁面上找到 此資訊。 如果 需要 服務端點,請選取 [ 啟用 ]。 一旦一切準備就緒,請儲存更新。 如需其餘必要步驟,請參閱第 2a 節 - Azure Blob 儲存體網路組態 (私人端點)a

    2a - Azure Blob 儲存體網路組態 (私人端點)

    如果您的備份直接放在Azure 儲存體容器中,則不需要上述所有步驟,因為沒有與Azure 儲存體帳戶通訊的 Integration Runtime。 不過,我們仍然需要確定目標 SQL Server 實例可以與Azure 儲存體帳戶通訊,以從容器還原備份。 若要套用此特定設定,請遵循第 1b 節 - Azure Blob 儲存體網路 設定中的指示,在填寫[新增現有虛擬網路] 快顯時,指定目標 SQL 實例虛擬網絡。

    2b - Azure Blob 儲存體網路組態 (私人端點)

    如果您的Azure 儲存體帳戶上已設定私人端點,請遵循第 2a - Azure Blob 儲存體網路設定(私人端點) 一節 中所述的步驟。 不過,您必須選取私人端點的子網,而不只是目標 SQL Server 子網。 請確定私人端點裝載于與目標 SQL Server 實例相同的 VNet 中。 如果不是,請使用 [Azure 儲存體帳戶組態] 區段中的程式建立另一個私人端點。

建立Azure 資料移轉服務

  1. 建立新的Azure 資料移轉服務或重複使用您先前建立的現有服務。

    注意

    如果您先前已使用 Azure 入口網站建立 DMS,則無法在 Azure Data Studio 的移轉精靈中重複使用它。 只能重複使用先前使用 Azure Data Studio 建立的 DMS。

  2. 選取您現有 DMS 的資源群組 ,或需要建立新的 DMS。 [ Azure 資料移轉服務] 下拉式清單會列出所選資源群組中的任何現有 DMS。
  3. 若要重複使用現有的 DMS,請從下拉式清單中選取它,且自我裝載整合執行時間的狀態會顯示在頁面底部。
  4. 若要建立新的 DMS,請選取 [ 新建 ]。 在 [ 建立Azure 資料移轉服務 ] 畫面上,提供 DMS 的名稱,然後選取 [ 建立 ]。
  5. 成功建立 DMS 之後,您將會看到設定整合執行時間 的詳細資料
  6. 選取 [ 下載並安裝整合執行時間 ],以在網頁瀏覽器中開啟下載連結。 完成下載。 在符合連線到來源 SQL Server 的必要條件的機器上安裝整合執行時間,以及包含來源備份的位置。
  7. 安裝完成之後, Microsoft Integration Runtime Configuration Manager 會自動啟動以開始註冊程式。
  8. 複製並貼上 Azure Data Studio 精靈畫面中提供的其中一個驗證金鑰。 如果驗證金鑰有效,Integration Runtime Configuration Manager 中會顯示綠色核取圖示,指出您可以繼續 註冊
  9. 成功完成自我裝載整合執行時間註冊之後,請關閉 Microsoft Integration Runtime Configuration Manager ,然後切換回 Azure Data Studio 中的移轉精靈。
  10. 在 Azure Data Studio 的 [ 建立Azure 資料移轉服務] 畫面中選取 [測試 連線],以驗證新建立的 DMS 是否已連線到新註冊的自我裝載整合執行時間。 Test connection integration runtime
  11. 檢閱移轉摘要,然後選取 [完成] 以開始資料庫移轉。

監視您的移轉

  1. 在 [ 資料庫移轉狀態 ] 上,您可以追蹤進行中的移轉、完成的移轉,以及移轉失敗(如果有的話)。

    monitor migration dashboard

  2. 選取 進行中的資料庫移轉,以檢視進行中的 移轉,並選取資料庫名稱以取得進一步的詳細資料。

  3. [移轉詳細資料] 頁面會顯示備份檔案和對應的狀態:

    狀態 描述
    備份檔案抵達來源備份位置並經過驗證
    正在上傳 整合執行時間目前正在將備份檔案上傳至 Azure 儲存體
    已上傳 備份檔案會上傳至 Azure 儲存體
    恢復 Azure 資料移轉服務目前正在將備份檔案還原至Azure SQL 受控執行個體
    已還原 備份檔案已成功在Azure SQL 受控執行個體上還原
    已取消 已取消移轉程式
    已忽略 備份檔案被忽略,因為它不屬於有效的資料庫備份鏈結

    backup restore details

完成完全移轉

本教學課程的最後一個步驟是完成移轉完全移轉,以確保Azure SQL 受控執行個體中已移轉的資料庫可供使用。 此程式是唯一需要連接資料庫之應用程式的停機時間,因此必須仔細規劃業務或應用程式專案關係人的完全移轉時間。

若要完成完全移轉:

  1. 停止所有導向來源資料庫的傳入交易。
  2. 進行應用程式組態變更,以指向 Azure SQL 受控執行個體中的目標資料庫。
  3. 在指定的備份位置中,進行源資料庫的最終記錄備份
  4. 將源資料庫置於唯讀模式。 因此,使用者可以從資料庫讀取資料,但無法加以修改。
  5. 請確定所有資料庫備份在 [監視詳細資料] 頁面中的狀態 為 [已 還原]。
  6. 選取監視詳細資料頁面中的 [完成完全移轉]。

在完全移轉程序期間,移轉狀態會從 [進行中] 變更為 [完成]。 完成完全移轉程式時,移轉狀態會變更為 成功 ,表示資料庫移轉成功,且已移轉的資料庫已可供使用。

重要

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

限制

使用適用於 Azure Data Studio 的 Azure SQL 擴充功能來移轉至 Azure SQL 受控執行個體時,會有下列限制:

  • 如果移轉單一資料庫,資料庫備份必須放在資料庫資料夾 (包括容器的根資料夾) 內的一般檔案結構中,且資料夾無法巢狀,因為系統不支援。
  • 如果使用相同的 Azure Blob 儲存體容器來遷移多個資料庫,您必須將各個資料庫的備份檔案放在容器內的單獨資料夾中。
  • 不支援在目標 Azure SQL 受控執行個體中使用 DMS 來覆寫現有資料庫。
  • DMS 不支援在您的目標上設定高可用性和災害復原,以符合來源拓撲。
  • 不支援下列伺服器物件:
    • SQL Server Agent 作業
    • 認證
    • SSIS 套件
    • 伺服器稽核
  • 您無法使用從 Azure Data Factory 建立的現有自我裝載整合執行階段,以使用 DMS 進行資料庫移轉。 一開始,自我裝載整合執行階段應使用 Azure Data Studio 中的 Azure SQL 移轉延伸模組建立,並可重複使用以進行進一步資料庫移轉。
  • 單一 LRS 作業 (DMS 所建立) 最多可以執行 30 天。 此期間到期時,作業會自動取消,因此您的目標資料庫會自動遭到刪除。
  • 如果您收到下列錯誤: Memory-optimized filegroup must be empty in order to be restored on General Purpose tier of SQL Database Managed Instance 。 此問題是設計方式,Azure SQL 受控執行個體的一般用途層不支援 Hekaton( 也稱為 SQL Server 記憶體內部 OLTP )。 若要繼續移轉,其中一種方式是升級至支援 Hekaton 的 業務關鍵 層。 另一種方式是確保源資料庫在Azure SQL 受控執行個體為一般用途時未使用它。

下一步