使用 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 数据库的过程。

步骤 说明
设置 安装 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 数据库项目扩展或 DMA 创建了从源到目标的数据库架构。
步骤 6:摘要 查看迁移信息并启动迁移过程。

数据库迁移服务将跳过空表来优化迁移过程,即使你选择这些表也是如此。

重要

目前,Azure SQL 数据库不支持迁移包含双字节字符的表名。 替代方法是,可以在迁移之前暂时重命名这些表,然后在迁移完成后将其还原为其原始名称。

迁移状态

有一些状态可让你随时了解迁移进度。

  • 准备复制:该服务正在禁用目标表中的自动统计信息、触发器和索引。

  • 正在复制:正在将数据从源数据库复制到目标数据库。

  • 复制完成:数据复制完成,服务正在等待其他表完成复制。

  • 重新生成索引:服务正在重新生成目标表上的索引。

  • 成功:已复制所有数据,并已重新生成索引。

性能注意事项

迁移速度在很大程度上取决于目标 Azure SQL 数据库 SKU 和自承载集成运行时主机。 强烈建议在启动迁移过程之前纵向扩展 Azure SQL 数据库计算资源,以获得最佳迁移体验。

在决定服务器安装自承载集成运行时时,请确保此计算机能够处理数据复制操作的 CPU 和内存负载。

对于大量表,Azure SQL 数据库迁移可能会很慢,因为 Azure 数据工厂 (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