Share via


教學課程:將 SQL Server 移轉至 Azure SQL Database (離線)

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

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

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

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

提示

在 Azure Database Migration Service 中,您可在離線或線上時移轉資料庫。 在離線移轉中,當移轉開始時,應用程式即會開始停機。 若要將停機限制於在移轉後完全移轉至新環境所需的時間,請使用線上移轉。 建議您測試離線移轉,以決定停機是否在可接受範圍。 如果無法接受預期的停機,則請執行線上移轉。

重要

目前,無法使用 Azure SQL Database 目標的線上移轉。

移轉選項

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

必要條件

開始教學課程之前:

  • 下載及安裝 Azure Data Studio

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

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

    • Azure SQL 資料庫目標執行個體的參與者
    • Azure 資源群組 (包含 Azure SQL Database 的目標執行個體) 的讀取者角色
    • Azure 訂閱的擁有者或參與者角色 (如果您建立新的 Azure 資料庫移轉服務執行個體,則需要)

    除了使用這些其中一個內建角色,您也可以指派自訂角色

    重要

    只有在您設定移轉步驟時,才需要 Azure 帳戶。 評估或在 Azure Data Studio 的移轉精靈中檢視 Azure 建議時不需要 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 Database Projects 延伸模組等工具來移轉結構描述。

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

在 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. 在移轉至 Azure SQL 精靈中的步驟 1:用於評量的資料庫中,選取您要評量的資料庫。 然後選取下一步

    Screenshot that shows selecting a database for assessment.

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

    1. 在 [選擇您的 Azure SQL 目標] 中,選取 [Azure SQL Database]

      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 Database] 目標中,選取 [檢視詳細資料] 以開啟詳細的 SKU 建議報告:

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

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

      Screenshot that shows SKU recommendation details.

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

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

進行移轉設定

  1. 在移轉至 Azure SQL 精靈中的步驟 3:Azure SQL 目標中,為您的目標 Azure SQL Database 執行個體完成下列步驟:

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

      Screenshot that shows Azure account details.

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

      Screenshot that shows Azure SQL Database details.

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

      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. 在 [選取 <database-name> 的資料表] 中,選取要移轉至目標的資料表。 [有資料列] 資料行指出目標資料表是否具有目標資料庫中的資料列。 您可以選取一或多個資料表。 然後,選取 [更新]

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

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

      Screenshot that shows the table selection.

  4. 檢閱您的資料表選取項目,然後選取 [下一步] 以移至移轉精靈中的下一個步驟。

    Screenshot that shows selected tables to migrate.

注意

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

現在,您可以使用資料庫移轉服務來移轉資料庫結構描述和資料。 此外,您也可以在選取要移轉的資料表清單之前,先使用 SQL Server dacpac 延伸模組或 Azure Data Studio 中的 SQL Database Projects 延伸模組等工具來移轉結構描述。

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

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

注意

如果您先前已使用 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 中的移轉精靈。

開始資料庫移轉

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

Screenshot that shows how to start migration.

監視資料庫移轉

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

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

    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 Database 目標時,資料庫移轉服務會將移轉狀態從進行中更新為成功

    Screenshot that shows succeeded migration.

注意

資料庫移轉服務會跳過沒有資料 (0 個資料列) 的資料表來最佳化移轉。 沒有資料的資料表不會出現在清單中,即使您在建立移轉時選取那些資料表也一樣。

您已完成移轉至 Azure SQL Database。 我們鼓勵您完成一系列移轉後工作,以確保所有功能順暢且有效率地運作。

重要

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

限制

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

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

下一步