为数据迁移助手配置设置

可以通过在 dma.exe.config 文件中设置配置值来调整数据迁移助手的某些行为。 本文将介绍关键配置值。

可以在计算机上的以下文件夹中找到数据迁移助手桌面应用程序和命令行实用工具的 dma.exe.config 文件。

  • 桌面应用程序

    %ProgramFiles%\Microsoft Data Migration Assistant\dma.exe.config

  • 命令行实用工具

    %ProgramFiles%\Microsoft Data Migration Assistant\dmacmd.exe.config

在进行任何修改之前,请务必保存原始配置文件的副本。 进行更改后,重启数据迁移助手,以使新配置值生效。

要并行评估的数据库数

数据迁移助手会并行评估多个数据库。 在评估期间,数据迁移助手会提取数据层应用程序 (dacpac) 以了解数据库架构。 如果并行评估同一服务器上的多个数据库,则此操作可能会超时。

从数据迁移助手 v2.0 开始,可以通过设置 parallelDatabases 配置值来控制此值。 默认值为 8。

<advisorGroup>
<workflowSettings>
<assessment parallelDatabases="8" />
</workflowSettings>
</advisorGroup>

要并行迁移的数据库数

数据迁移助手在迁移登录之前会并行迁移多个数据库。 在迁移期间,数据迁移助手将备份源数据库,选择性复制备份,然后在目标服务器上还原备份。 选择多个数据库进行迁移时,可能会遇到超时错误。

从数据迁移助手 v2.0 开始,如果遇到此问题,可以降低 parallelDatabases 配置值。 可以增加该值以减少总迁移时间。

<advisorGroup>
<workflowSettings>
<migration parallelDatabases="8″ />
</workflowSettings>
</advisorGroup>

DacFX 设置

在评估期间,数据迁移助手会提取数据层应用程序 (dacpac) 以了解数据库架构。 对于大型数据库,或者如果服务器负载过轻,此操作可能会失败,并出现超时错误。 从数据迁移 v1.0 开始,可以修改以下配置值以避免出现错误。

注意

默认情况下,会对整个 <dacfx> 条目进行批注。 请删除注释,然后根据需要修改值。

  • commandTimeout

    此参数以秒为单位设置 IDbCommand.CommandTimeout 属性。 (默认值=60)

  • databaseLockTimeout

    此参数等效于 SET LOCK_TIMEOUT timeout_period(以毫秒为单位)。 (默认值=5000)

  • maxDataReaderDegreeOfParallelism

    此参数设置要使用的 SQL 连接池连接数。 (默认值=8)

<advisorGroup>
<advisorSettings>
<dacFx commandTimeout="60" databaseLockTimeout="5000" maxDataReaderDegreeOfParallelism="8"/>
</advisorSettings>
</advisorGroup>

Stretch Database:建议阈值

重要

SQL Server 2022 (16.x) 和 Azure SQL 数据库已弃用延伸数据库。 数据库引擎的未来版本将移除此功能。 请避免在新的开发工作中使用该功能,并着手修改当前还在使用该功能的应用程序。

使用 SQL Server Stretch Database,可以将分析的和原始事务数据从 Microsoft SQL Server 2016 动态拉伸到 Azure。 Stretch Database 建议不再作为顾问选项提供。

SQL 连接超时

通过将连接超时值设置为指定的秒数,可以在运行评估或迁移时控制源实例和目标实例的 SQL 连接超时。 默认值为 15 秒。

<appSettings>
<add key="ConnectionTimeout" value="15" />
</appSettings>

忽略错误代码

每项规则的标题中都具有错误代码。 如果不需要规则并且想要忽略它们,请使用 ignoreErrorCodes 属性。 可以指定忽略单个错误或多个错误。 若要忽略多个错误,请使用分号,例如 ignoreErrorCodes="46010;71501"。 默认值为 71501,它与对象引用系统对象(如过程、视图等)时标识的未解析引用相关。

<workflowSettings>
<assessment parallelDatabases="8" ignoreErrorCodes="71501" />
</workflowSettings>

另请参阅