使用 Azure SQL 移轉延伸模組移轉至 Azure SQL 資料庫

已完成

當您移轉至 Azure 時,如果您可以負擔離線資料庫,則您具有可以使用的幾個工具。

在您的自行車製造案例中,HR 資料庫會被視為業務關鍵,但在週末很少使用。 您已規畫在星期五晚上與星期一早上之間執行離線遷移,但想要評估最佳的移轉方法。

假設所有移轉前檢查都已經使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組Azure Migrate 來完成。 此處理程序可確保解決功能和相容性問題。

使用適用於 Azure Data Studio 的 Azure SQL 移轉延伸模組進行移轉

Azure Data Studio 的 Azure SQL 移轉延伸模組是一種工具,可協助您準備將 SQL Server 資料庫移轉至 Azure。 它會評估移轉的整備程度、針對您的需求建議最佳的 Azure 資源,並協助移轉程序。 我們建議針對大小較小或中型的資料庫使用延伸模組。

Azure Data Studio 架構的 Azure SQL 移轉延伸模組移轉之螢幕擷取畫面。

Azure SQL 移轉延伸模組會使用最新版本的資料移轉服務,並包含進階評估功能,可評估您的 SQL Server 資料庫是否已準備好移轉至 Azure SQL。

此外,您可以使用 Azure SQL 移轉延伸模組,免費移轉多個 SQL Server 資料庫。

下列步驟強調使用適用于 Azure Data Studio 的 Azure SQL 移轉延伸模組移轉至 Azure SQL Database 的程序。

步驟 描述
安裝程式 安裝 Azure Data Studio 和 Azure SQL 移轉延伸模組。 開啟 Azure Data Studio,然後啟動 [移轉至 Azure SQL 移轉精靈]。 此精靈會引導您完成移轉程序。
步驟 1: 要評定的資料庫 選擇要移轉的資料庫。
步驟 2: 評定結果和建議 評估其移轉整備程度。 此工具會識別可能會影響移轉程序的任何潛在問題。 從您目前的資料庫收集效能資料。 此資料用來提供 Azure SQL 設定的建議。
步驟 3: Azure 目標 選取 Azure 帳戶和您的目標 Azure SQL 資料庫。
步驟 4: Azure 資料庫移轉服務 選取現有的 Azure 資料移轉服務,或建立新的Azure 資料移轉服務。
步驟 5: 資料來源設定 輸入用來從自我裝載整合執行時間連線到來源的認證。 選取要從來源移轉至目標的資料表。 選取要移轉的資料表之前,請確定您已使用 dacpac 延伸模組、Azure Data Studio 中的 SQL Database Projects 延伸模組或 DMA,將資料庫架構從來源建立到目標。
步驟 6: 摘要 檢閱移轉資訊並啟動移轉程序。

資料移轉服務會略過空的資料表,以最佳化移轉程序,即使您選取它們也一樣。

重要

目前,Azure SQL 資料庫不支援移轉包含雙位元組字元的資料表名稱。 因應措施是,您可以在移轉之前暫時重新命名這些資料表,然後在移轉完成後將其還原為其原始名稱。

移轉狀態

有幾個狀態可讓您在移轉進度上保持更新。

  • 準備複製: 服務正在停用目標資料表中的自動統計資料、觸發程式和索引。

  • 複製: 源資料庫的資料複製到目標資料庫正在進行中。

  • 複製完成: 資料複製已完成,服務正在等候其他資料表完成複製。

  • 重建索引: 服務正在重建目標資料表上的索引。

  • 成功: 會複製所有資料,並重建索引。

效能考量

移轉速度高度取決於目標 Azure SQL 資料庫 SKU 和自我裝載整合執行階段。 強烈建議您在起始移轉程序以獲得最佳移轉體驗之前,先相應增加 Azure SQL 資料庫計算資源。

決定讓伺服器安裝自我裝載整合執行階段時,請確定這部機器可以處理資料複製作業的 CPU 和記憶體負載。

Azure SQL 資料庫移轉可能會因為 Azure Data Factory (ADF) 啟動活動所花費的時間而造成大量資料表的速度變慢,即使是小型資料表也是如此。

具有大型 Blob 資料行的資料表可能會因為逾時而無法移轉。

我們建議在單一電腦上,每個自我裝載整合執行階段最多 10 個並行資料庫移轉。 相應放大自我裝載執行階段,或在不同的電腦上建立個別的執行個體,以增加並行資料庫移轉。

監視移轉

啟動資料庫移轉之後,您就可以在 Azure Data Studio 中監視進度。 您也可以在 Azure 資料移轉服務資源下的 Azure 入口網站追蹤進度。

監視從 Azure Data Studio 移轉

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

  1. 在移轉儀表板中選取 [進行中的資料庫移轉],以檢視進行中的移轉。

    螢幕擷取畫面顯示適用於 Azure Data Studio 的 Azure 移轉延伸模組上的移轉儀表板。

  2. 選取資料庫名稱以取得進一步的詳細資料。

    螢幕擷取畫面顯示適用於 Azure Data Studio 的 Azure 移轉延伸模組上的移轉詳細資料。

  3. [移轉狀態] 屬性會變更為 [正在完成],然後在移轉完成後變更為 [成功]

    螢幕擷取畫面顯示適用於 Azure Data Studio 的 Azure 移轉延伸模組上的移轉詳細資料,其中顯示已完成移轉。

監視從 Azure 入口網站移轉

或者,您也可以使用 Azure 資料移轉服務監視移轉活動。

若要監視資料庫移轉,您通常會移至 Azure 入口網站,並尋找資料移轉服務的執行個體。 找到服務之後,您就可以檢視其執行個體概觀。 選取 [監視移轉] 以存取進行中資料庫移轉的詳細資訊。

螢幕擷取畫面顯示 Azure 入口網站中的 Azure資料庫移轉服務的監視頁面。

移轉狀態顯示為 [成功] 之後,瀏覽至目標伺服器,然後驗證目標資料庫。 檢查資料庫結構描述和資料。

大規模移轉

您也可以使用 PowerShell 或 Azure CLI,將資料庫從內部部署 SQL Server 離線移轉至 Azure SQL 資料庫。

下列範例會將 AdventureWorks 資料庫移轉至 Azure SQL 資料庫。


$sourcePass = ConvertTo-SecureString "password" -AsPlainText -Force
$targetPass = ConvertTo-SecureString "password" -AsPlainText -Force

New-AzDataMigrationToSqlDb `
-ResourceGroupName MyGroup `
-SqlDbInstanceName myserver `
-Kind "SqlDb" `
-TargetDbName AdventureWorks `
-SourceDatabaseName AdventureWorks `
-SourceSqlConnectionAuthentication SQLAuthentication `
-SourceSqlConnectionDataSource myserver.microsoft.com `
-SourceSqlConnectionUserName user `
-SourceSqlConnectionPassword $sourcePass `
-Scope "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.Sql/servers/myserver" `
-TargetSqlConnectionAuthentication SQLAuthentication `
-TargetSqlConnectionDataSource myserver.database.windows.net `
-TargetSqlConnectionUserName user `
-TargetSqlConnectionPassword $targetPass `
-MigrationService "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.DataMigration/SqlMigrationServices/MyService"

下列範例會從 AdventureWorks 資料庫移轉資料表的子集。


New-AzDataMigrationToSqlDb `
-ResourceGroupName MyGroup `
-SqlDbInstanceName myserver `
-Kind "SqlDb" `
-TargetDbName AdventureWorks `
-SourceDatabaseName AdventureWorks `
-SourceSqlConnectionAuthentication SQLAuthentication `
-SourceSqlConnectionDataSource myserver.microsoft.com `
-SourceSqlConnectionUserName user `
-SourceSqlConnectionPassword $sourcePass `
-Scope "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.Sql/servers/myserver" `
-TargetSqlConnectionAuthentication SQLAuthentication `
-TargetSqlConnectionDataSource myserver.database.windows.net `
-TargetSqlConnectionUserName user `
-TargetSqlConnectionPassword $targetPass `
-TableList "[Person].[Person]", "[Person].[EmailAddress]" `
-MigrationService "/subscriptions/MySubscriptionID/resourceGroups/MyGroup/providers/Microsoft.DataMigration/SqlMigrationServices/MyService"

若要深入瞭解可用的 Azure 移轉延伸模組 PowerShell 和 Azure CLI 命令,請參閱下列連結: 適用于資料移轉延伸模組的 PowerShell 模組 以及 適用于資料移轉延伸模組的 Azure CLI