View a markdown version of this page

SQL Server 评测 - AWS Database Migration Service
验证在完全加载期间目标数据库上是否启用了二级索引验证仅在将 BatchApplyEnabled 设置为 true 时才使用受限 LOB 模式验证目标数据库是否在任务范围内的表中启用了任何触发器检查任务范围内的表是否包含计算的列检查任务范围内的表是否包含列存储索引检查内存优化表是否属于任务范围检查时态表是否属于任务范围检查是否在数据库级别启用了延迟耐久性检查是否在数据库级别启用了加速数据恢复检查表映射中是否有超过 1 万个带主键的表检查源数据库中是否有包含特殊字符的表名或架构名称。检查源数据库中是否有包含屏蔽数据的列名检查源数据库中是否有加密的备份检查源数据库是否在 URL 或 Windows Azure 上存储了备份。检查源数据库是否在多个磁盘上有备份检查源数据库是否至少有一个完整备份检查源数据库是否存在稀疏列和列式结构压缩。检查源数据库实例是否有针对 SQL Server 2008 或 SQL Server 2008 R2 的服务器级审核检查源数据库是否有适用于完整 LOB 模式的几何列检查源数据库中是否存在具有身份属性的列。检查 DMS 用户是否具有 FULL LOAD 权限检查 DMS 用户是否拥有 FULL LOAD 和 CDC 权限或仅 CDC 权限检查本地或 EC2 数据库上 MS-Replication 是否启用了 CDC。检查 DMS 用户是否拥有 VIEW DEFINITION 权限。对于没有系统管理员角色的用户,检查 DMS 用户是否拥有 MASTER 数据库的 VIEW DATABASE STATE 权限。检查 DMS 用户是否拥有 VIEW SERVER STATE 权限。验证文本 repl 大小参数是否不受限制验证批量应用的目标上是否存在主键或唯一索引验证启用批量应用的目标上是否同时存在主键和唯一索引启用 DMS 验证后,验证表是否有主键或唯一索引验证是否 AWS DMS 用户对目标具有必要的权限关于使用 MaxFullLoadSubTasks 设置的建议检查数字随机化的转换规则查看数字掩码的转换规则查看哈希掩码的转换规则确认数据验证任务设置和数据掩蔽数字随机化未同时启用确认数据验证任务设置和数据掩蔽哈希掩码未同时启用确认数据验证任务设置和数据掩蔽数字掩码未同时启用验证源数据库中是否存在至少一个选定对象验证源数据库中是否存在次要约束和索引(非主要)验证目标端点不是只读副本验证备份链检查数据库用户应用 E XCLUSIVE_AUTOMATIC_TRUNCATION 保护策略的权限验证辅助节点连接和所需的安全保护属性 AWS DMS 源端点在以下情况下,验证端点是否具有所有必需的额外连接属性 (ECA) AWS DMS 已连接到辅助节点

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

SQL Server 评测

本节介绍使用 Microsoft SQL Server 源端点的迁移任务的各项迁移前评测。

主题

验证在完全加载期间目标数据库上是否启用了二级索引

API 密钥:sqlserver-check-secondary-indexes

此迁移前评测可验证完全加载期间目标数据库上是否启用了二级索引。建议您禁用或删除二级索引。

有关更多信息,请参阅 AWS Database Migration Service的最佳实践

验证仅在将 BatchApplyEnabled 设置为 true 时才使用受限 LOB 模式

API 密钥:sqlserver-batch-apply-lob-mode

此迁移前评测可验证 DMS 任务是否包含 LOB 列。如果 LOB 列包含在任务范围内,则只能在受限 LOB 模式下使用 BatchApplyEnabled。建议您为此类表创建单独的任务,改用事务性应用模式。

有关更多信息,请参阅如何使用 DMS 批量应用特征来提高 CDC 复制性能?

验证目标数据库是否在任务范围内的表中启用了任何触发器

API 密钥:sqlserver-check-for-triggers

AWS DMS 在目标数据库中确定了触发器,这些触发器可能会影响满负载 DMS 任务的性能和目标延迟。确保在任务运行期间禁用这些触发器,并在割接期间启用这些触发器。

检查任务范围内的表是否包含计算的列

API 密钥:sqlserver-check-for-computed-fields

此迁移前评估检查计算列是否存在。 AWS DMS 不支持从 SQL Server 计算列中复制更改。

此评估仅对满负荷和CDC迁移或迁移有 CDC-only 效。此评估对仅完全加载迁移无效。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查任务范围内的表是否包含列存储索引

API 密钥:sqlserver-check-for-columnstore-indexes

此迁移前评估检查是否存在带有列库索引的表。 AWS DMS 不支持从带有列存储索引的 SQL Server 表中复制更改。

此评估仅对满负荷和CDC迁移或迁移有 CDC-only 效。此评估对仅完全加载迁移无效。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查内存优化表是否属于任务范围

API 密钥:sqlserver-check-for-memory-optimized-tables

此迁移前评估检查是否存在内存优化表。 AWS DMS 不支持复制内存优化表中的更改。

此评估仅对满负荷和CDC迁移或迁移有 CDC-only 效。此评估对仅完全加载迁移无效。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查时态表是否属于任务范围

API 密钥:sqlserver-check-for-temporal-tables

这种迁移前评估检查时态表的存在。 AWS DMS 不支持复制时态表中的更改。

此评估仅对满负荷和CDC迁移或迁移有 CDC-only 效。此评估对仅完全加载迁移无效。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查是否在数据库级别启用了延迟耐久性

API 密钥:sqlserver-check-for-delayed-durability

这种迁移前评估检查是否存在延迟的耐久性。 AWS DMS 不支持从使用延迟耐久性的交易中复制更改。

此评估仅对满负荷和CDC迁移或迁移有 CDC-only 效。此评估对仅完全加载迁移无效。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查是否在数据库级别启用了加速数据恢复

API 密钥:sqlserver-check-for-accelerated-data-recovery

此迁移前评估检查是否存在加速的数据恢复。 AWS DMS 不支持通过加速数据恢复从数据库复制更改。

此评估仅对满负荷和CDC迁移或迁移有 CDC-only 效。此评估对仅完全加载迁移无效。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查表映射中是否有超过 1 万个带主键的表

API 密钥:sqlserver-large-number-of-tables

此迁移前评估检查是否存在超过 1 万个带主键的表。如果带有主键的表过多,则配置为的数据库 MS-Replication 可能会遇到任务失败。

此评估仅对满负荷迁移和 CDC 迁移或迁移有 CDC-only 效。此评估对仅完全加载迁移无效。

有关配置的更多信息 MS-Replication,请参阅捕获数据更改,以便从 SQL Server 进行持续复制

检查源数据库中是否有包含特殊字符的表名或架构名称。

API 密钥:sqlserver-check-for-special-characters

此迁移前评测可验证源数据库中是否有包含以下集合中字符的表名或架构名称:

\\ -- \n \" \b \r ' \t ;

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库中是否有包含屏蔽数据的列名

API 密钥:sqlserver-check-for-masked-data

此迁移前评测可验证源数据库中是否有屏蔽的数据。 AWS DMS 会在不进行屏蔽的情况下迁移屏蔽的数据。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库中是否有加密的备份

API 密钥:sqlserver-check-for-encrypted-backups

此迁移前评测可验证源数据库中是否有加密的备份。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库是否在 URL 或 Windows Azure 上存储了备份。

API 密钥:sqlserver-check-for-backup-url

此迁移前评测可验证源数据库是否在 URL 或 Windows Azure 上存储了备份。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库是否在多个磁盘上有备份

API 密钥:sqlserver-check-for-backup-multiple-stripes

此迁移前评测可验证源数据库是否在多个磁盘上有备份。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库是否至少有一个完整备份

API 密钥:sqlserver-check-for-full-backup

此迁移前评测可验证源数据库是否至少有一个完整备份。必须配置 SQL Server 进行完整备份,并且您必须在复制数据之前先运行一次备份。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库是否存在稀疏列和列式结构压缩。

API 密钥:sqlserver-check-for-sparse-columns

此迁移前评测可检查源数据库是否存在稀疏列和列式结构压缩。DMS 不支持稀疏列和列式结构压缩。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库实例是否有针对 SQL Server 2008 或 SQL Server 2008 R2 的服务器级审核

API 密钥:sqlserver-check-for-audit-2008

此迁移前评测可验证源数据库是否已对 SQL Server 2008 或 SQL Server 2008 R2 启用服务器级审核。DMS 存在与 SQL Server 2008 和 2008 R2 相关的已知问题。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库是否有适用于完整 LOB 模式的几何列

API 密钥:sqlserver-check-for-geometry-columns

此迁移前评测可验证在使用 SQL Server 作为源时,源数据库是否有适用于完整大型对象(LOB)模式的几何列。当数据库包含几何列时,建议使用受限 LOB 模式或将 InlineLobMaxSize 任务设置设为使用内联 LOB 模式。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查源数据库中是否存在具有身份属性的列。

API 密钥:sqlserver-check-for-identity-columns

此迁移前评测可验证源数据库中是否存在具有 IDENTITY 属性的列。DMS 不会将此属性迁移到相应的目标数据库列。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查 DMS 用户是否具有 FULL LOAD 权限

API 密钥:sqlserver-check-user-permission-for-full-load-only

此迁移前评测可验证 DMS 任务的用户是否拥有在 FULL LOAD 模式下运行任务的权限。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查 DMS 用户是否拥有 FULL LOAD 和 CDC 权限或仅 CDC 权限

API 密钥:sqlserver-check-user-permission-for-cdc

此迁移前评测可验证 DMS 用户是否拥有在 FULL LOAD and CDCCDC only 模式下运行任务的权限。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查本地或 EC2 数据库上 MS-Replication 是否启用了 CDC。

API 密钥:sqlserver-check-attribute-for-enable-ms-cdc-onprem

检查本地或 EC2 数据库上 MS-Replication 是否启用了 CDC。

有关配置的更多信息 MS-Replication,请参阅捕获本地或 Amazon EC2 上的自管理 SQL Server 的数据更改

检查 DMS 用户是否拥有 VIEW DEFINITION 权限。

API 密钥:sqlserver-check-user-permission-on-view-definition

此迁移前评测可验证端点设置中指定的用户是否拥有 VIEW DEFINITION 权限。DMS 需要 VIEW DEFINITION 权限才能查看对象定义。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

对于没有系统管理员角色的用户,检查 DMS 用户是否拥有 MASTER 数据库的 VIEW DATABASE STATE 权限。

API 密钥:sqlserver-check-user-permission-on-view-database-state

此迁移前评测可验证端点设置中指定的用户是否拥有 VIEW DATABASE STATE 权限。DMS 需要此权限才能访问 MASTER 数据库中的数据库对象。当用户没有系统管理员权限时,DMS 也需要此权限。DMS 需要此权限才能创建函数、证书和登录名以及授予凭证。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

检查 DMS 用户是否拥有 VIEW SERVER STATE 权限。

API 密钥:sqlserver-check-user-permission-on-view-server-state

此迁移前评测可检查在额外连接属性(ECA)中指定的用户是否拥有 VIEW SERVER STATE 权限。VIEW SERVER STATE 是一种服务器级权限,允许用户查看服务器范围的信息和状态。此权限提供对动态管理视图(DMV)和动态管理功能(DMF)的访问权限,DMV 和 DMF 可公开有关 SQL Server 实例的信息。DMS 用户需要此权限才能访问 CDC 资源。在 FULL LOAD and CDCCDC only 模式下运行 DMS 任务时需要此权限。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

验证文本 repl 大小参数是否不受限制

API 密钥:sqlserver-check-for-max-text-repl-size

在数据库上设置最大文本 repl 大小参数可能会导致 LOB 列出现数据迁移错误。DMS 强烈建议将其设置为 -1。

有关更多信息,请参阅 排除 Microsoft SQL Server 中的问题

验证批量应用的目标上是否存在主键或唯一索引

API 密钥:sqlserver-check-batch-apply-target-pk-ui-absence

只有目标表上有主键或唯一索引的表才支持批量应用。没有主键或唯一索引的表会导致批处理失败,将逐一处理更改。建议您将此类表移到各自的任务中,改用事务性应用模式。或者,也可以在目标表上创建唯一键。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

验证启用批量应用的目标上是否同时存在主键和唯一索引

API 密钥:sqlserver-check-batch-apply-target-pk-ui-simultaneously

只有目标表上有主键或唯一索引的表才支持批量应用。具有主键和唯一索引的表会同时导致批处理失败,将逐一处理更改。建议您将此类表移到各自的任务中,改用事务性应用模式。或者,如果正在进行迁移,则可以在目标表上删除唯一键或主键,然后对其进行重建。

有关更多信息,请参阅 使用 SQL Server 作为源代码的限制 AWS DMS

启用 DMS 验证后,验证表是否有主键或唯一索引

API 密钥:sqlserver-check-pk-validity

数据验证要求表在源和目标上具有主键或唯一索引。

有关更多信息,请参阅 AWS DMS 数据验证

验证是否 AWS DMS 用户对目标具有必要的权限

API 密钥:sqlserver-check-target-privileges

该 AWS DMS 用户必须至少具有目标数据库上的 db_owner 用户角色。

有关更多信息,请参阅 使用 SQL Server 作为目标时的安全要求 AWS Database Migration Service

关于使用 MaxFullLoadSubTasks 设置的建议

API 密钥:sqlserver-tblnum-for-max-fullload-subtasks

此评测会检查任务中包含的表数量,并建议增加 MaxFullLoadSubTasks 参数以在满载过程中获得最佳性能。默认情况下,同时 AWS DMS 迁移 8 个表。将 MaxFullLoadSubTasks 参数更改为更高的值可以提高满载性能。

有关更多信息,请参阅 Full-load 任务设置

检查数字随机化的转换规则

API 密钥:sqlserver-datamasking-digits-randomize

此评测会验证表映射中使用的列是否与“数字随机化”转换规则兼容。此外,此评测还会检查选择进行转换的任何列是否为主键、唯一约束或外键的一部分,因为应用“数字随机化”转换并不能保证任何唯一性。

查看数字掩码的转换规则

API 密钥:sqlserver-datamasking-digits-mask

此评测会验证“数字掩码”转换规则是否不支持表映射中使用的任何列。此外,此评测还会检查选择进行转换的任何列是否为主键、唯一约束或外键的一部分,因为对此类列应用“数字掩码”转换可能会导致 DMS 任务失败,因为无法保证唯一性。

查看哈希掩码的转换规则

API 密钥:sqlserver-datamasking-hash-mask

此评测会验证“哈希掩码”转换规则是否不支持表映射中使用的任何列。它还会检查源列的长度是否超过 64 个字符。理想情况下,目标列长度应大于 64 个字符以支持哈希掩码。此外,此评测还会检查选择进行转换的任何列是否为主键、唯一约束或外键的一部分,因为应用“数字随机化”转换并不能保证任何唯一性。

确认数据验证任务设置和数据掩蔽数字随机化未同时启用

API 密钥:all-to-all-validation-with-datamasking-digits-randomize

此迁移前评测可验证数据验证设置和数据掩蔽数字随机化是否同时启用,因为这些功能不兼容。

确认数据验证任务设置和数据掩蔽哈希掩码未同时启用

API 密钥:all-to-all-validation-with-datamasking-hash-mask

此迁移前评测可验证数据验证设置和数据掩蔽哈希掩码是否同时启用,因为这些功能不兼容。

确认数据验证任务设置和数据掩蔽数字掩码未同时启用

API 密钥:all-to-all-validation-with-digit-mask

此迁移前评测可验证数据验证设置和数据掩蔽数字掩码是否同时启用,因为这些功能不兼容。

验证源数据库中是否存在至少一个选定对象

API 密钥:all-check-source-selection-rules

此迁移前评估可验证源数据库中是否存在至少一个选择规则中指定的对象,包括基于通配符的规则的模式匹配。

验证源数据库中是否存在次要约束和索引(非主要)

API 密钥:all-check-secondary-constraints

此迁移前评估可验证源数据库中是否存在二级约束和索引(外键、检查约束、非聚集索引)。

验证目标端点不是只读副本

API 密钥:all-check-target-read-replica

此迁移前评估可验证目标端点是否未配置为只读副本。 AWS DMS 需要目标数据库的写入权限,无法复制到只读副本。

验证备份链

API 密钥:sqlserver-check-for-backup-broken-chain

此迁移前评估可验证源数据库备份链是否中断。中断的备份链可能会 AWS DMS 阻止访问 CDC 复制所需的事务日志。

检查数据库用户应用 E XCLUSIVE_AUTOMATIC_TRUNCATION 保护策略的权限

API 密钥:sqlserver-safeguard-permissions

这种迁移前评估可验证数据库用户是否具有使用EXCLUSIVE_AUTOMATIC_TRUNCATION保障策略所需的权限。用户必须向 dmsuser 授予对dbo.syscategoriesdbo.sysjobs系统对象的 SELECT 权限。

有关更多信息,请参阅 使用 SQL Server 作为源时的端点设置 AWS DMS

验证辅助节点连接和所需的安全保护属性 AWS DMS 源端点

API 密钥:sqlserver-check-sec-node-sg-policy

此迁移前评估将验证在连接到启用了安全保护的辅助节点时,源端点是否配置了所需的额外连接属性 (ECA)。

有关更多信息,请参阅 使用 SQL Server 作为源时的端点设置 AWS DMS

在以下情况下,验证端点是否具有所有必需的额外连接属性 (ECA) AWS DMS 已连接到辅助节点

API 密钥:sqlserver-check-sec-node-without-eca

此迁移前评估将验证源端点连接到辅助节点时是否配置了所有必需的额外连接属性 (ECA)

有关更多信息,请参阅 使用自行管理的 SQL Server AlwaysOn 可用性组