教學課程:將 SQL Server 移轉至 Azure SQL Database (離線)
您可以透過適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組或 Azure 入口網站,使用 Azure 資料庫移轉服務,將資料庫從內部部署 SQL Server 執行個體移轉至 Azure SQL Database (離線)。
在本教學課程中,了解如何使用資料庫移轉服務,將範例 AdventureWorks2022
資料庫從內部部署 SQL Server 執行個體移轉至 Azure SQL Database 執行個體。 本教學課程使用離線移轉模式,這會在移轉程序期間考慮可接受的停機。
在本教學課程中,您會了解如何:
- 在 Azure Data Studio 中開啟 [移轉至 Azure SQL 精靈]
- 執行來源 SQL Server 資料庫的評量
- 從來源 SQL Server 執行個體收集效能資料
- 取得最適合您工作負載的 Azure SQL Database SKU 建議
- 建立 Azure 資料庫移轉服務的執行個體
- 開始移轉並監視完成進度
提示
在 Azure 資料庫移轉服務中,您可在離線或線上時移轉資料庫。 在離線移轉中,當移轉開始時,應用程式即會開始停機。 若要將停機限制於在移轉後完全移轉至新環境所需的時間,請使用線上移轉。 建議您測試離線移轉,以決定停機是否在可接受範圍。 如果無法接受預期的停機,則請執行線上移轉。
重要
目前,無法使用 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 精靈]:
在 Azure Data Studio 中,移至 [連線]。 選取並連線至 SQL Server 的內部部署執行個體。 您也可以連線至 Azure 虛擬機器上的 SQL Server。
以滑鼠右鍵按一下伺服器連線,然後選取 [管理]。
在伺服器功能表中的 [一般] 下,選取[Azure SQL 移轉]。
在 [Azure SQL 移轉] 儀表板中,選取 [移轉至 Azure SQL] 以開啟移轉精靈。
在精靈的第一頁上,啟動新的工作階段或繼續先前儲存的工作階段。
在 [移轉至 Azure SQL 精靈] 的 [步驟 1: 要評量的資料庫] 中,選取您要評量的資料庫。 然後選取下一步。
在 [步驟 2: 評量結果和建議] 中,完成下列步驟:
在 [選擇您的 Azure SQL 目標] 中,選取 [Azure SQL Database]。
選取 [檢視/選取] 以檢視評量結果。
在評量結果中,選取資料庫,然後檢閱評量報告,以確定找不到任何問題。
選取 [取得 Azure 建議] 以開啟 [建議] 窗格。
選取 [立即收集效能資料]。 選取本機電腦上的資料夾以儲存效能記錄,然後選取 [開始]。
Azure Data Studio 會收集效能資料,直到您停止資料收集或關閉 Azure Data Studio 為止。
10 分鐘之後,Azure Data Studio 會指出可用於 Azure SQL Database 的建議。 產生第一個建議之後,您可以選取 [重新開始資料收集] 以繼續資料收集程序並精簡 SKU 建議。 如果您的使用模式隨著時間而有所不同,延伸評量會特別有用。
在選取的 [Azure SQL Database] 目標中,選取 [檢視詳細資料] 以開啟詳細的 SKU 建議報告:
在 [檢閱 Azure SQL Database 建議] 中,檢閱建議。 若要儲存建議的複本,請選取 [儲存建議報告]。
選取 [關閉] 以關閉 [建議] 窗格。
選取 [下一步] 以繼續精靈中的資料庫移轉。
在 [移轉至 Azure SQL 精靈] 中的 [步驟 3: Azure SQL 目標] 中,為您的目標 Azure SQL Database 執行個體完成下列步驟:
選取您的 Azure 帳戶、Azure 訂用帳戶、Azure 區域或位置,以及包含 Azure SQL Database 部署的資源群組。
針對 [Azure SQL Database 伺服器],選取目標 Azure SQL Database 伺服器 (邏輯伺服器)。 輸入目標資料庫部署的使用者名稱和密碼。 然後,選取 [連線]。 輸入認證以驗證對目標資料庫的連線能力。
接下來,對應來源資料庫和用於移轉的目標資料庫。 針對 [目標資料庫],選取 [Azure SQL Database] 目標。 然後,選取 [下一步] 以移至移轉精靈中的下一個步驟。
在 [步驟 4: 移轉模式] 中,選取 [離線移轉],然後選取 [下一步]。
在 [步驟 5: 資料來源設定] 中,完成下列步驟:
在 [來源認證] 下,輸入來源 SQL Server 認證。
在 [選取資料表] 下,選取 [編輯] 鉛筆圖示。
在 [選取 <database-name> 的資料表] 中,選取要移轉至目標的資料表。 [有資料列] 資料行指出目標資料表是否具有目標資料庫中的資料列。 您可以選取一或多個資料表。 然後,選取 [更新]。
您可以在開始移轉之前隨時更新選取的資料表清單。
在下列範例中,文字篩選會套用至包含文字 Employee
的資料表。 根據您的移轉需求選取資料表的清單。
檢閱您的資料表選取項目,然後選取 [下一步] 以移至移轉精靈中的下一個步驟。
在移轉至 Azure SQL 精靈中的步驟 6:Azure 資料庫移轉服務中,建立新的資料庫移轉服務執行個體,或重複使用您稍早建立的現有執行個體。
注意
如果您先前已使用 Azure 入口網站建立資料庫移轉服務執行個體,則無法在 Azure Data Studio 的移轉精靈中重複使用執行個體。 只有在您使用 Azure Data Studio 建立執行個體時,才能重複使用執行個體。
若要使用現有的資料庫移轉服務執行個體:
在 [資源群組] 中,選取包含現有資料庫移轉服務執行個體的資源群組。
在 Azure 資料庫移轉服務中,選取所選資源群組中現有的資料庫移轉服務執行個體。
選取 [下一步]。
若要建立資料庫移轉服務的新執行個體:
在 [資源群組] 中,建立新的資源群組,以包含資料庫移轉服務的新執行個體。
在 [Azure 資料庫移轉服務] 底下,選取 [新建]。
在 [建立 Azure 資料庫移轉服務] 中,輸入資料庫移轉服務執行個體的名稱,然後選取 [建立]。
在 [設定整合執行階段] 底下,完成下列步驟:
選取 [下載並安裝整合執行階段] 連結,以在網頁瀏覽器中開啟下載連結。 下載整合執行階段,然後將其安裝在符合連線至來源 SQL Server 執行個體必要條件的電腦上。
安裝完成時,Microsoft Integration Runtime Configuration Manager 會自動開啟以開始註冊程序。
在 [驗證金鑰] 資料表中,複製精靈中提供的其中一個驗證金鑰,並將其貼到 Azure Data Studio 中。
如果驗證金鑰有效,Integration Runtime Configuration Manager 中會出現綠色核取圖示。 綠色核取記號表示您可以繼續註冊。
註冊自我裝載整合執行階段之後,請關閉 Microsoft Integration Runtime Configuration Manager。
在在 Azure Data Studio 中的 [建立 Azure 資料庫移轉服務] 中,選取 [測試連線],以驗證新建立的資料庫移轉服務執行個體是否已連線至新註冊的自我裝載整合執行階段。
返回 Azure Data Studio 中的移轉精靈。
在 [移轉至 Azure SQL 精靈] 中的 [步驟 7: 摘要] 中,檢閱您建立的設定,然後選取 [開始移轉] 以開始資料庫移轉。
在 Azure Data Studio 的 [一般] 下方的伺服器功能表中,選取 [Azure SQL 移轉] 以移至 Azure SQL Database 移轉的儀表板。
在 [資料庫移轉狀態] 下,您可以追蹤進行中、已完成和失敗的移轉 (如果有),也可以檢視所有資料庫移轉。
選取進行中的資料庫移轉,以檢視作用中的移轉。
若要取得特定移轉的詳細資訊,請選取資料庫名稱。
資料庫移轉服務會在每次移轉狀態重新整理時傳回最新的已知移轉狀態。 下表描述可能的狀態:
狀態 |
描述 |
準備複製 |
服務正在停用目標資料表中的自動統計資料、觸發程序和索引。 |
複製中 |
正在從來源資料庫將資料複製到目標資料庫。 |
複製已完成 |
資料複製已完成。 服務正在等候其他資料表完成複製,以開始最後的步驟,將資料表傳回其原始結構描述。 |
重建索引 |
服務正在重建目標資料表上的索引。 |
已成功 |
所有資料都會複製並重建索引。 |
檢查移轉詳細資料頁面,以檢視每個資料庫的目前狀態。
以下是具有AdventureWorks2022
正在建立狀態的 資料庫移轉範例:
在功能表列中,選取 [重新整理] 以更新移轉狀態。
重新整理移轉狀態之後,範例 AdventureWorks2022
資料庫移轉的更新狀態為進行中:
選取資料庫名稱以開啟資料表檢視。 在此檢視中,您會看到移轉的目前狀態、目前處於該狀態的資料表數目,以及每個資料表的詳細狀態。
將所有資料表資料移轉至 Azure SQL Database 目標時,資料庫移轉服務會將移轉狀態從進行中更新為成功。
注意
資料庫移轉服務會跳過沒有資料 (0 個資料列) 的資料表來最佳化移轉。 沒有資料的資料表不會出現在清單中,即使您在建立移轉時選取那些資料表也一樣。
您已完成移轉至 Azure SQL Database。 我們鼓勵您完成一系列移轉後工作,以確保所有功能順暢且有效率地運作。
開始教學課程之前:
確定您可以存取 Azure 入口網站
擁有指派給下列其中一個內建角色的 Azure 帳戶:
- Azure SQL 資料庫目標執行個體的參與者
- Azure 資源群組 (包含 Azure SQL Database 的目標執行個體) 的讀取者角色
- 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 目標上沒有資料表,或開始移轉之前未選取任何資料表。 無法選取 [下一步] 按鈕來起始移轉工作。 如果目標上沒有任何資料表存在,您必須選取 [結構描述移轉] 選項以繼續進行。
步驟 1:在 Azure 入口網站中,瀏覽至 [Azure 資料庫移轉服務] 頁面。 建立 Azure 資料庫移轉服務的新執行個體,或重複使用您稍早建立的現有執行個體。
若要使用現有的資料庫移轉服務執行個體:
若要建立資料庫移轉服務的新執行個體:
在 Azure 入口網站的 [Azure 資料庫移轉服務] 底下,選取 [建立]。
在 [選取移轉案例和資料庫移轉服務] 中,選取所需的輸入,例如 [來源] 和 [目標伺服器類型],接著選擇 [資料庫移轉服務],然後選擇 [選取]。
在下一個畫面 [建立資料移轉服務] 上,選取您的訂用帳戶和資源群組,然後選取 [位置],然後輸入資料庫移轉服務名稱。 選取 [檢閱 + 建立] 。 這會建立 Azure 資料庫移轉服務。
如果需要自我裝載整合執行階段 (SHIR),請在資料庫移轉服務的概觀頁面上,選取 [設定] 下方的 [整合執行階段],然後完成下列步驟:
選取 [設定整合執行階段],然後選擇 [下載並安裝整合執行階段] 連結,以在網頁瀏覽器中開啟下載連結。 下載整合執行階段,然後將其安裝在符合連線至來源 SQL Server 執行個體必要條件的電腦上。 如需詳細資訊,請參閱 SHIR 建議。
安裝完成時,Microsoft Integration Runtime Configuration Manager 會自動開啟以開始註冊程序。
在 [驗證金鑰] 資料表中,複製精靈中提供的其中一個驗證金鑰,並將其貼到 Microsoft Integration Runtime Configuration Manager 中。
如果驗證金鑰有效,Integration Runtime Configuration Manager 中會出現綠色核取圖示。 綠色核取記號表示您可以繼續註冊。
註冊自我裝載整合執行階段之後,請關閉 Microsoft Integration Runtime Configuration Manager。 可能需要幾分鐘的時間,才能在 Azure 入口網站上的 [設定 > 整合執行階段] 底下,反映資料庫移轉服務的節點詳細資料。
在從 Azure 入口網站使用資料庫移轉服務開始新移轉的步驟 2 中,在 [Azure 資料庫移轉服務] 下,選取您想要使用的現有資料庫移轉服務執行個體,然後選取 [新增移轉] 或 [開始移轉]。
在 [選取新的移轉] 案例下,選擇您的來源、目標伺服器類型、移轉模式,然後選擇 [選取]。
現在,在 [Azure SQL Database 離線移轉精靈] 底下:
提供下列詳細資料以連線至來源 SQL Server,然後選取 [下一步]:
- 來源伺服器名稱
- 驗證類型
- 使用者名稱和密碼
- 連線內容
在下一個頁面上,選取要移轉的資料庫。 此頁面可能需要一些時間才能從來源填入資料庫的清單。
假設您已根據評量結果佈建目標,請在 [連線至目標 Azure SQL Database] 頁面上提供目標詳細資料,然後選取 [下一步]:
- Azure 訂用帳戶
- Azure 資源群組
- 目標 Azure SQL Database 伺服器
- 驗證類型
- 使用者名稱和密碼
在 [對應來源和目標資料庫] 下,對應來源與目標之間的資料庫。
移至此步驟之前,請確定將結構描述從來源移轉至所有選取資料庫的目標。 然後,針對每個選取的資料庫選取要移轉的資料庫資料表,然後選取您要移轉資料的資料表。
檢閱 [資料庫移轉摘要] 頁面上提供的所有輸入,然後選取 [開始移轉] 按鈕以開始資料庫移轉。
在 [資料庫移轉服務執行個體] 概觀中,選取 [監視移轉] 以檢視資料庫移轉的詳細資料。
在 [移轉] 索引標籤下,您可以追蹤進行中、已完成和失敗 (如果有的話) 的移轉,也可以檢視所有資料庫移轉。 在功能表列中,選取 [重新整理] 以更新移轉狀態。
資料庫移轉服務會在每次移轉狀態重新整理時傳回最新的已知移轉狀態。 下表描述可能的狀態:
狀態 |
描述 |
準備複製 |
服務正在停用目標資料表中的自動統計資料、觸發程序和索引。 |
複製中 |
正在從來源資料庫將資料複製到目標資料庫。 |
複製已完成 |
資料複製已完成。 服務正在等候其他資料表完成複製,以開始最後的步驟,將資料表傳回其原始結構描述。 |
重建索引 |
服務正在重建目標資料表上的索引。 |
已成功 |
所有資料都會複製並重建索引。 |
在 [來源名稱] 底下,選取要開啟資料表檢視的資料庫名稱。 在此檢視中,您會看到移轉的目前狀態、目前處於該狀態的資料表數目,以及每個資料表的詳細狀態。
將所有資料表資料移轉至 Azure SQL Database 目標時,資料庫移轉服務會將移轉狀態從進行中更新為成功。
注意
資料庫移轉服務會跳過沒有資料 (0 個資料列) 的資料表來最佳化移轉。 沒有資料的資料表不會出現在清單中,即使您在建立移轉時選取那些資料表也一樣。
您已完成移轉至 Azure SQL Database。 我們鼓勵您完成一系列移轉後工作,以確保所有功能順暢且有效率地運作。
Azure SQL Database 離線移轉會利用 Azure Data Factory (ADF) 管線來移動資料,因而遵守 ADF 限制。 建立資料庫移轉服務時,也會建立對應的 ADF。 因此,每個服務都適用處理站限制。
- 安裝 SHIR 所在的電腦可作為移轉的計算。 請確定此電腦可以處理該資料複本的 CPU 和記憶體負載。 若要深入了解,請檢閱建立和設定自我裝載整合執行階段。
- 每個資料庫 100,000 個資料表限制。
- 每個服務 10,000 個同時資料庫移轉。
- 移轉速度高度取決於目標 Azure SQL 資料庫 SKU 和自我裝載整合執行階段。
- Azure SQL Database 移轉因開始活動造成的 ADF 額外負荷,調整資料表數量的效能不佳。 如果資料庫有數千個資料表,則每個資料表的啟動程序可能需要幾秒鐘的時間,即使它們是由一個具有 1 位元資料的資料列組成也一樣。
- 目前不支援移轉具有雙位元組字元的 Azure SQL Database 資料表名稱。 風險降低措施是在移轉之前將資料表重新命名;成功移轉後,便可變更回其原始名稱。
- 具有大型 Blob 資料行的資料表可能會因為逾時而無法移轉。
- 目前不支援 SQL Server 保留的資料庫名稱。
- 目前不支援包含分號的資料庫名稱。
- 不會移轉計算資料行。