教學課程:將 SQL Server 遷移至 Azure SQL 資料庫 (脫機)

您可以透過適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組或 Azure 入口網站,使用 Azure 資料移轉服務,將資料庫從 SQL Server 的內部部署實例移轉至 Azure SQL 資料庫(離線)。

在本教學課程中,瞭解如何使用 資料移轉服務,將範例AdventureWorks2019資料庫從內部部署 SQL Server 實例移轉至 Azure SQL 資料庫 實例。 本教學課程使用離線移轉模式,這會在移轉程式期間考慮可接受的停機時間。

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

  • 在 Azure Data Studio 中開啟 [遷移至 Azure SQL 精靈]
  • 執行來源 SQL Server 資料庫的評估
  • 從來源 SQL Server 實例收集效能數據
  • 取得最適合您工作負載的 Azure SQL 資料庫 SKU 建議
  • 建立 Azure 資料移轉服務的實例
  • 啟動移轉並監視完成進度

提示

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

重要

目前無法使用 Azure SQL 資料庫 目標的在線移轉。

移轉選項

下一節說明如何使用 Azure 資料移轉服務 搭配 Azure SQL 移轉延伸模組,或 Azure 入口網站。

必要條件

開始教學課程之前:

  • 下載並安裝 Azure Data Studio

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

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

    • Azure SQL 資料庫 目標實例的參與者
    • Azure 資源群組的讀者角色,其中包含 Azure SQL 資料庫 的目標實例
    • Azure 訂用帳戶的擁有者或參與者角色(如果您建立新的 Azure 資料移轉服務 實例,則為必要角色)

    作為使用其中一個內建角色的替代方案,您可以 指派自定義角色

    重要

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

  • 建立 Azure SQL 資料庫 的目標實例

  • 請確定連接到來源 SQL Server 實例的 SQL Server 登入是db_datareader角色的成員,而目標 SQL Server 實例的登入是db_owner角色的成員。

  • 若要使用 資料移轉服務 將資料庫架構從來源移轉至目標 Azure SQL DB,所需的最低支援 SHIR 版本為 5.37 或更新版本

  • 如果您第一次使用 資料移轉服務,請確定您的訂用帳戶中已註冊 Microsoft.DataMigration 資源提供者。

注意

現在,您可以使用 資料移轉服務 來移轉資料庫架構和數據。 此外,您也可以在選取要移轉的數據表清單之前,先使用 SQL Server dacpac 擴充功能Azure Data Studio 中的 SQL 資料庫 Projects 延伸模組等工具來移轉架構。

如果 Azure SQL 資料庫 目標上沒有數據表存在,或在開始移轉之前未選取任何數據表,則無法選取 [下一步] 按鈕來起始移轉工作。 如果目標上沒有任何數據表存在,您必須選取 [架構移轉] 選項以繼續進行。

在 Azure Data Studio 中開啟 [遷移至 Azure SQL 精靈]

若要開啟 [移轉至 Azure SQL 精靈]:

  1. 在 Azure Data Studio 中,移至 連線。 選取並連線到 SQL Server 的內部部署實例。 您也可以連線到 Azure 虛擬機上的 SQL Server。

  2. 以滑鼠右鍵按兩下伺服器連線,然後選取 [ 管理]。

    Screenshot that shows a server connection and the Manage option in Azure Data Studio.

  3. 在 [一般] 下方的伺服器功能表中,選取 [Azure SQL 移轉]。

    Screenshot that shows the Azure Data Studio server menu.

  4. 在 Azure SQL 移轉儀錶板中,選取 [ 移轉至 Azure SQL ] 以開啟移轉精靈。

    Screenshot that shows the Migrate to Azure SQL wizard.

  5. 在精靈的第一頁上,啟動新的會話或繼續先前儲存的會話。

執行資料庫評量、收集效能數據,以及取得 Azure 建議

  1. 步驟 1:移轉至 Azure SQL 精靈中的評量 資料庫中,選取您要評估的資料庫。 然後選取下一步

    Screenshot that shows selecting a database for assessment.

  2. 步驟 2:評定結果和建議中,完成下列步驟:

    1. 在 [選擇您的 Azure SQL 目標] 中,選取 [Azure SQL 資料庫]。

      Screenshot that shows selecting the Azure SQL Database target.

    2. 選取 [檢視/選取] 以檢視評量結果。

      Screenshot that shows view/select assessment results.

    3. 在評量結果中,選取資料庫,然後檢閱評量報告,以確定找不到任何問題。

      Screenshot that shows the assessment report.

    4. 選取 [取得 Azure 建議 ] 以開啟 [建議] 窗格。

      Screenshot that shows Azure recommendations.

    5. 選取 [ 立即收集效能數據]。 選取本機電腦上的資料夾以儲存效能記錄,然後選取 [ 啟動]。

      Screenshot that shows performance data collection.

      Azure Data Studio 會收集效能數據,直到您停止數據收集或關閉 Azure Data Studio 為止。

      10 分鐘之後,Azure Data Studio 會指出可用於 Azure SQL Database 的建議。 產生第一個建議之後,您可以選取 [ 重新啟動數據收集 ] 以繼續數據收集程式並精簡 SKU 建議。 如果您的使用模式隨著時間而有所不同,擴充評定會特別有用。

      Screenshot that shows performance data collected.

    6. 在選取的 Azure SQL 資料庫 目標中,選取 [檢視詳細數據] 以開啟詳細的 SKU 建議報告:

      Screenshot that shows the View details link for the target database recommendations.

    7. 在 [檢閱 Azure SQL 資料庫 建議] 中,檢閱建議。 若要儲存建議的複本,請選取 [ 儲存建議報告]。

      Screenshot that shows SKU recommendation details.

  3. 選取 [ 關閉 ] 以關閉建議窗格。

  4. 選取 [下一步 ] 以繼續精靈中的資料庫移轉。

進行移轉設定

  1. 步驟 3:移轉至 Azure SQL 精靈中的 Azure SQL 目標中,為您的目標 Azure SQL 資料庫 實例完成下列步驟:

    1. 選取您的 Azure 帳戶、Azure 訂用帳戶、Azure 區域或位置,以及包含 Azure SQL 資料庫 部署的資源群組。

      Screenshot that shows Azure account details.

    2. 針對 [Azure SQL 資料庫 伺服器],選取目標 Azure SQL 資料庫 伺服器 (邏輯伺服器)。 輸入目標資料庫部署的使用者名稱和密碼。 然後,選取 [連線]。 輸入認證以驗證目標資料庫的連線能力。

      Screenshot that shows Azure SQL Database details.

    3. 接下來,對應源資料庫和移轉的目標資料庫。 針對 [目標資料庫],選取 [Azure SQL 資料庫 目標]。 然後,選取 [下一步 ] 以移至移轉精靈中的下一個步驟。

      Screenshot that shows source and target mapping.

  2. 步驟 4:移轉模式中,選取 [ 脫機移轉],然後選取 [ 下一步]。

    Screenshot that shows offline migrations selection.

  3. 步驟 5:數據源組態中,完成下列步驟:

    1. 在 [來源認證],輸入來源 SQL Server 認證。

    2. 在 [選取數據表] 底下,選取 [編輯鉛筆] 圖示。

      Screenshot that shows source SQL Server credentials.

    3. [選取資料庫名稱>的<數據表] 中,選取要移轉至目標的數據表。 [有數據列] 數據行指出目標數據表是否具有目標資料庫中的數據列。 您可以選取一或多個資料表。 然後,選取 [ 更新]。

      您可以在開始移轉之前隨時更新選取的數據表清單。

      在下列範例中,文字篩選會套用至包含 文字 Employee的數據表。 根據您的移轉需求選取資料表清單。

      Screenshot that shows the table selection.

  4. 檢閱您的數據表選取專案,然後選取 [下一步 ] 以移至移轉精靈中的下一個步驟。

    Screenshot that shows selected tables to migrate.

注意

如果未選取任何數據表,或未輸入使用者名稱和密碼,則無法選取 [ 下一步 ] 按鈕。

現在,您可以使用 資料移轉服務 來移轉資料庫架構和數據。 此外,您也可以在選取要移轉的數據表清單之前,先使用 SQL Server dacpac 擴充功能Azure Data Studio 中的 SQL 資料庫 Projects 延伸模組等工具來移轉架構。

建立 資料移轉服務 實例

步驟 6:Azure 資料移轉服務 移轉至 Azure SQL 精靈中,建立 資料移轉服務 的新實例,或重複使用您稍早建立的現有實例。

注意

如果您先前已使用 Azure 入口網站 建立 資料移轉服務 實例,則無法在 Azure Data Studio 的移轉精靈中重複使用實例。 只有在您使用 Azure Data Studio 建立實例時,才能重複使用實例。

使用現有的 資料移轉服務 實例

若要使用現有的 資料移轉服務 實例:

  1. 在 [資源群組] 中,選取包含現有實例的資源群組 資料移轉服務。

  2. Azure 資料移轉服務 中,選取所選資源群組中現有 資料移轉服務 實例。

  3. 選取 [下一步]。

    Screenshot that shows Database Migration Service selection.

建立新實例 資料移轉服務

若要建立新實例 資料移轉服務:

  1. [資源群組] 中,建立新的資源群組,以包含新的 資料移轉服務 實例。

  2. 在 [Azure 資料移轉服務] 底下,選取 [新建]。

  3. [建立 Azure 資料移轉服務] 中,輸入 資料移轉服務 實例的名稱,然後選取 [建立]。

  4. 在 [設定整合運行時間] 底下,完成下列步驟:

    1. 選取 [ 下載並安裝整合運行時間 ] 連結,以在網頁瀏覽器中開啟下載連結。 下載整合運行時間,然後將它安裝在符合連線至來源 SQL Server 實例必要條件的電腦上。

      Screenshot that shows the Download and install integration runtime link.

      安裝完成時,Microsoft Integration Runtime Configuration Manager 會自動開啟以開始註冊程式。

    2. 在 [ 驗證金鑰 ] 資料表中,複製精靈中提供的其中一個驗證密鑰,並將其貼到 Azure Data Studio 中。

      Screenshot that highlights the authentication key table in the wizard.

      如果驗證密鑰有效,Integration Runtime Configuration Manager 中會出現綠色核取圖示。 綠色檢查表示您可以繼續註冊

      註冊自我裝載整合運行時間之後,請關閉 Microsoft Integration Runtime Configuration Manager。

      注意

      如需自我裝載整合運行時間的詳細資訊,請參閱 建立及設定自我裝載整合運行時間

  5. Azure Data Studio 中建立 Azure 資料移轉服務,選取 [測試連線] 來驗證新建立 資料移轉服務 實例是否已連線到新註冊的自我裝載整合運行時間。

    Screenshot that shows IR connectivity test.

  6. 返回 Azure Data Studio 中的移轉精靈。

啟動資料庫移轉

步驟 7:移轉至 Azure SQL 精靈中的摘要 中,檢閱您所建立的設定,然後選取 [ 開始移 轉] 以開始資料庫移轉。

Screenshot that shows how to start migration.

監視資料庫移轉

  1. 在 Azure Data Studio 的 [一般] 下方的伺服器功能表中,選取 [Azure SQL 移轉] 以移至 Azure SQL 資料庫 移轉的儀錶板。

    [資料庫移轉狀態] 下,您可以追蹤進行中、已完成和失敗的移轉 (如果有),也可以檢視所有資料庫移轉。

    Screenshot that shows monitor migration dashboard.

  2. 選取 進行 中的資料庫移轉,以檢視作用中的移轉。

    若要取得特定移轉的詳細資訊,請選取資料庫名稱。

    Screenshot that shows database migration details.

    資料移轉服務 每次重新整理移轉狀態時,都會傳回最新的已知移轉狀態。 下表描述可能的狀態:

    狀態 描述
    準備複製 服務正在停用目標數據表中的自動統計數據、觸發程式和索引。
    複製 數據正從源資料庫複製到目標資料庫。
    複製完成 數據複製已完成。 服務正在等候其他數據表完成複製,以開始最後的步驟,將數據表傳回其原始架構。
    重建索引 服務正在重建目標數據表上的索引。
    成功 所有數據都會複製並重建索引。
  3. 檢查移轉詳細數據頁面,以檢視每個資料庫的目前狀態。

    以下是具有建立狀態的資料庫移轉範例AdventureWorks2019

    Screenshot that shows a creating migration status.

  4. 在功能表欄中,選取 [重新整理 ] 以更新移轉狀態。

    重新整理移轉狀態之後,範例 AdventureWorks2019 資料庫移轉的更新狀態為 進行中:

    Screenshot that shows a migration in progress status.

  5. 選取資料庫名稱以開啟數據表檢視。 在此檢視中,您會看到移轉的目前狀態、目前處於該狀態的數據表數目,以及每個數據表的詳細狀態。

    Screenshot that shows monitoring table migration.

    將所有數據表數據遷移至 Azure SQL 資料庫 目標時,資料移轉服務 將移轉狀態從 [進行中] 更新為 [成功]。

    Screenshot that shows succeeded migration.

注意

資料移轉服務 略過沒有數據的數據表來優化移轉(0 個數據列)。 沒有數據的數據表不會出現在清單中,即使您在建立移轉時選取數據表也一樣。

您已完成移轉至 Azure SQL 資料庫。 我們鼓勵您完成一系列移轉後工作,以確保一切順利且有效率地運作。

重要

請務必利用 Azure SQL 資料庫 的進階雲端式功能。 這些功能包括 內建的高可用性威脅偵測,以及 監視和微調您的工作負載

限制

Azure SQL 資料庫 脫機移轉會利用 Azure Data Factory (ADF) 管線進行數據移動,因而遵守 ADF 限制。 建立資料庫移轉服務時,會建立對應的ADF。 因此,每個服務的處理站限制都適用。

  • 安裝 SHIR 的電腦可作為移轉的計算。 請確定這部電腦可以處理數據復本的CPU和記憶體負載。 若要深入瞭解,請檢閱 SHIR 建議
  • 每個資料庫限制 100,000 個數據表。
  • 每個服務 10,000 個並行資料庫移轉。
  • 移轉速度高度取決於目標 Azure SQL 資料庫 SKU 和自我裝載整合執行階段。
  • Azure SQL 資料庫 移轉會因啟動活動中的 ADF 額外負荷而調整數據表號碼不佳。 如果資料庫有數千個數據表,則每個數據表的啟動程式可能需要幾秒鐘的時間,即使它們是由一個具有1位數據的數據列所組成也一樣。
  • 目前不支援使用雙位元組字元的 Azure SQL 資料庫 資料表名稱進行移轉。 緩和措施是在移轉前重新命名數據表;成功移轉之後,它們可以變更回原始名稱。
  • 具有大型 Blob 資料行的資料表可能會因為逾時而無法移轉。
  • 目前不支援保留 SQL Server 的資料庫名稱。
  • 目前不支援包含分號的資料庫名稱。
  • 計算數據行不會移轉。

下一步