

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

# SQL Server 评测
<a name="CHAP_Tasks.AssessmentReport.SqlServer"></a>

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

**Topics**
+ [验证在完全加载期间目标数据库上是否启用了二级索引](#CHAP_Tasks.AssessmentReport.SqlServer.SecondaryIndexesEnabled)
+ [验证仅在将 `BatchApplyEnabled` 设置为 true 时才使用受限 LOB 模式](#CHAP_Tasks.AssessmentReport.SqlServer.LimitedLOBMode)
+ [验证目标数据库是否在任务范围内的表中启用了任何触发器](#CHAP_Tasks.AssessmentReport.SqlServer.TargetDatabaseTriggersEnabled)
+ [检查任务范围内的表是否包含计算的列](#CHAP_Tasks.AssessmentReport.SqlServer.ComputedColumns)
+ [检查任务范围内的表是否包含列存储索引](#CHAP_Tasks.AssessmentReport.SqlServer.ColumnstoreIndexes)
+ [检查内存优化表是否属于任务范围](#CHAP_Tasks.AssessmentReport.SqlServer.MemoryOptimized)
+ [检查时态表是否属于任务范围](#CHAP_Tasks.AssessmentReport.SqlServer.TemporalTables)
+ [检查是否在数据库级别启用了延迟耐久性](#CHAP_Tasks.AssessmentReport.SqlServer.DelayedDurability)
+ [检查是否在数据库级别启用了加速数据恢复](#CHAP_Tasks.AssessmentReport.SqlServer.AcceleratedRecovery)
+ [检查表映射中是否有超过 1 万个带主键的表](#CHAP_Tasks.AssessmentReport.SqlServer.TableMapping)
+ [检查源数据库中是否有包含特殊字符的表名或架构名称。](#CHAP_Tasks.AssessmentReport.SqlServer.SpecialCharacters)
+ [检查源数据库中是否有包含屏蔽数据的列名](#CHAP_Tasks.AssessmentReport.SqlServer.MaskedData)
+ [检查源数据库中是否有加密的备份](#CHAP_Tasks.AssessmentReport.SqlServer.EncryptedBackups)
+ [检查源数据库是否在 URL 或 Windows Azure 上存储了备份。](#CHAP_Tasks.AssessmentReport.SqlServer.RemoteBackups)
+ [检查源数据库是否在多个磁盘上有备份](#CHAP_Tasks.AssessmentReport.SqlServer.MultipleDisks)
+ [检查源数据库是否至少有一个完整备份](#CHAP_Tasks.AssessmentReport.SqlServer.FullBackup)
+ [检查源数据库是否存在稀疏列和列式结构压缩。](#CHAP_Tasks.AssessmentReport.SqlServer.SparseOrStructureCompression)
+ [检查源数据库实例是否有针对 SQL Server 2008 或 SQL Server 2008 R2 的服务器级审核](#CHAP_Tasks.AssessmentReport.SqlServer.Audit)
+ [检查源数据库是否有适用于完整 LOB 模式的几何列](#CHAP_Tasks.AssessmentReport.SqlServer.GeometryColumns)
+ [检查源数据库中是否存在具有身份属性的列。](#CHAP_Tasks.AssessmentReport.SqlServer.Identity)
+ [检查 DMS 用户是否具有 FULL LOAD 权限](#CHAP_Tasks.AssessmentReport.SqlServer.FullLoadPermissions)
+ [检查 DMS 用户是否拥有 FULL LOAD 和 CDC 权限或仅 CDC 权限](#CHAP_Tasks.AssessmentReport.SqlServer.FullLoadCDCPermissions)
+ [检查本地数据库或 EC2 数据库上的 CDC 是否启用了 MS-Replication。](#CHAP_Tasks.AssessmentReport.SqlServer.IgnoreMsReplicationEnablement)
+ [检查 DMS 用户是否拥有 VIEW DEFINITION 权限。](#CHAP_Tasks.AssessmentReport.SqlServer.ViewDefinition)
+ [对于没有系统管理员角色的用户，检查 DMS 用户是否拥有 MASTER 数据库的 VIEW DATABASE STATE 权限。](#CHAP_Tasks.AssessmentReport.SqlServer.ViewDatabaseState)
+ [检查 DMS 用户是否拥有 VIEW SERVER STATE 权限。](#CHAP_Tasks.AssessmentReport.SqlServer.)
+ [验证文本 repl 大小参数是否不受限制](#CHAP_Tasks.AssessmentReport.Sqlserver.replsizeparameter)
+ [验证批量应用的目标上是否存在主键或唯一索引](#CHAP_Tasks.AssessmentReport.Sqlserver.batchapply)
+ [验证启用批量应用的目标上是否同时存在主键和唯一索引](#CHAP_Tasks.AssessmentReport.Sqlserver.batchapplysimultaneously)
+ [启用 DMS 验证后，验证表是否有主键或唯一索引](#CHAP_Tasks.AssessmentReport.Sqlserver.dmsvalidation)
+ [验证 Amazon DMS 用户是否具有访问目标所需的权限](#CHAP_Tasks.AssessmentReport.Sqlserver.dmsprivileges)
+ [关于使用 MaxFullLoadSubTasks 设置的建议](#CHAP_Tasks.AssessmentReport.Sqlserver.maxfullloadsubtask)
+ [检查数字随机化的转换规则](#CHAP_Tasks.AssessmentReport.Sqlserver.gigits.randomise)
+ [查看数字掩码的转换规则](#CHAP_Tasks.AssessmentReport.Sqlserver.digits.mask)
+ [查看哈希掩码的转换规则](#CHAP_Tasks.AssessmentReport.Sqlserver.hash.mask)
+ [确认数据验证任务设置和数据掩蔽数字随机化未同时启用](#CHAP_Tasks.AssessmentReport.Sqlserver.all.digits.random)
+ [确认数据验证任务设置和数据掩蔽哈希掩码未同时启用](#CHAP_Tasks.AssessmentReport.Sqlserver.all.hash.mask)
+ [确认数据验证任务设置和数据掩蔽数字掩码未同时启用](#CHAP_Tasks.AssessmentReport.Sqlserver.all.digit.mask)
+ [验证源数据库中是否至少存在一个选定对象](#CHAP_Tasks.AssessmentReport.Sqlserver.selection.rules)
+ [验证源数据库中是否存在辅助约束和索引（非主约束）](#CHAP_Tasks.AssessmentReport.Sqlserver.secondary.constraints)
+ [验证目标终端节点不是只读副本](#CHAP_Tasks.AssessmentReport.Sqlserver.target.replica)
+ [验证备份链](#CHAP_Tasks.AssessmentReport.Sqlserver.backup.chain)
+ [检查应用`EXCLUSIVE_AUTOMATIC_TRUNCATION`安全策略的数据库用户权限](#CHAP_Tasks.AssessmentReport.Sqlserver.safeguard.permission)
+ [验证辅助节点连接和 Amazon DMS 源端点所需的保护属性](#CHAP_Tasks.AssessmentReport.Sqlserver.node.safeguard.policy)
+ [验证端点在连接到辅助节点时 Amazon DMS 是否具有所有必需的额外连接属性 (ECAs)](#CHAP_Tasks.AssessmentReport.Sqlserver.node.without.eca)

## 验证在完全加载期间目标数据库上是否启用了二级索引
<a name="CHAP_Tasks.AssessmentReport.SqlServer.SecondaryIndexesEnabled"></a>

**API 密钥：**`sqlserver-check-secondary-indexes`

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

有关更多信息，请参阅 [Amazon Database Migration Service的最佳实践](https://docs.amazonaws.cn/dms/latest/userguide/CHAP_BestPractices.html)。

## 验证仅在将 `BatchApplyEnabled` 设置为 true 时才使用受限 LOB 模式
<a name="CHAP_Tasks.AssessmentReport.SqlServer.LimitedLOBMode"></a>

**API 密钥：**`sqlserver-batch-apply-lob-mode`

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

有关更多信息，请参阅[如何使用 DMS 批量应用特征来提高 CDC 复制性能？](https://repost.aws/knowledge-center/dms-batch-apply-cdc-replication)。

## 验证目标数据库是否在任务范围内的表中启用了任何触发器
<a name="CHAP_Tasks.AssessmentReport.SqlServer.TargetDatabaseTriggersEnabled"></a>

**API 密钥：**`sqlserver-check-for-triggers`

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

## 检查任务范围内的表是否包含计算的列
<a name="CHAP_Tasks.AssessmentReport.SqlServer.ComputedColumns"></a>

**API 密钥：**`sqlserver-check-for-computed-fields`

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

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查任务范围内的表是否包含列存储索引
<a name="CHAP_Tasks.AssessmentReport.SqlServer.ColumnstoreIndexes"></a>

**API 密钥：**`sqlserver-check-for-columnstore-indexes`

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

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查内存优化表是否属于任务范围
<a name="CHAP_Tasks.AssessmentReport.SqlServer.MemoryOptimized"></a>

**API 密钥：**`sqlserver-check-for-memory-optimized-tables`

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

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查时态表是否属于任务范围
<a name="CHAP_Tasks.AssessmentReport.SqlServer.TemporalTables"></a>

**API 密钥：**`sqlserver-check-for-temporal-tables`

此迁移前评估检查是否存在时态表。 Amazon DMS 不支持复制时态表中的更改。

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查是否在数据库级别启用了延迟耐久性
<a name="CHAP_Tasks.AssessmentReport.SqlServer.DelayedDurability"></a>

**API 密钥：**`sqlserver-check-for-delayed-durability`

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

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查是否在数据库级别启用了加速数据恢复
<a name="CHAP_Tasks.AssessmentReport.SqlServer.AcceleratedRecovery"></a>

**API 密钥：**`sqlserver-check-for-accelerated-data-recovery`

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

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查表映射中是否有超过 1 万个带主键的表
<a name="CHAP_Tasks.AssessmentReport.SqlServer.TableMapping"></a>

**API 密钥：**`sqlserver-large-number-of-tables`

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

此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。

有关配置 MS-Replication 的更多信息，请参阅[捕获数据更改，以便从 SQL Server 进行持续复制](CHAP_Source.SQLServer.CDC.md)。

## 检查源数据库中是否有包含特殊字符的表名或架构名称。
<a name="CHAP_Tasks.AssessmentReport.SqlServer.SpecialCharacters"></a>

**API 密钥：**`sqlserver-check-for-special-characters`

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

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库中是否有包含屏蔽数据的列名
<a name="CHAP_Tasks.AssessmentReport.SqlServer.MaskedData"></a>

**API 密钥：**`sqlserver-check-for-masked-data`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库中是否有加密的备份
<a name="CHAP_Tasks.AssessmentReport.SqlServer.EncryptedBackups"></a>

**API 密钥：**`sqlserver-check-for-encrypted-backups`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库是否在 URL 或 Windows Azure 上存储了备份。
<a name="CHAP_Tasks.AssessmentReport.SqlServer.RemoteBackups"></a>

**API 密钥：**`sqlserver-check-for-backup-url`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库是否在多个磁盘上有备份
<a name="CHAP_Tasks.AssessmentReport.SqlServer.MultipleDisks"></a>

**API 密钥：**`sqlserver-check-for-backup-multiple-stripes`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库是否至少有一个完整备份
<a name="CHAP_Tasks.AssessmentReport.SqlServer.FullBackup"></a>

**API 密钥：**`sqlserver-check-for-full-backup`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库是否存在稀疏列和列式结构压缩。
<a name="CHAP_Tasks.AssessmentReport.SqlServer.SparseOrStructureCompression"></a>

**API 密钥：**`sqlserver-check-for-sparse-columns`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库实例是否有针对 SQL Server 2008 或 SQL Server 2008 R2 的服务器级审核
<a name="CHAP_Tasks.AssessmentReport.SqlServer.Audit"></a>

**API 密钥：**`sqlserver-check-for-audit-2008`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库是否有适用于完整 LOB 模式的几何列
<a name="CHAP_Tasks.AssessmentReport.SqlServer.GeometryColumns"></a>

**API 密钥：**`sqlserver-check-for-geometry-columns`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查源数据库中是否存在具有身份属性的列。
<a name="CHAP_Tasks.AssessmentReport.SqlServer.Identity"></a>

**API 密钥：**`sqlserver-check-for-identity-columns`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查 DMS 用户是否具有 FULL LOAD 权限
<a name="CHAP_Tasks.AssessmentReport.SqlServer.FullLoadPermissions"></a>

**API 密钥：**`sqlserver-check-user-permission-for-full-load-only`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查 DMS 用户是否拥有 FULL LOAD 和 CDC 权限或仅 CDC 权限
<a name="CHAP_Tasks.AssessmentReport.SqlServer.FullLoadCDCPermissions"></a>

**API 密钥：**`sqlserver-check-user-permission-for-cdc`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查本地数据库或 EC2 数据库上的 CDC 是否启用了 MS-Replication。
<a name="CHAP_Tasks.AssessmentReport.SqlServer.IgnoreMsReplicationEnablement"></a>

**API 密钥：**`sqlserver-check-attribute-for-enable-ms-cdc-onprem`

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

有关配置 MS-Replication 的更多信息，请参阅[捕获本地或 Amazon EC2 上的自管理 SQL Server 的数据更改](CHAP_Source.SQLServer.CDC.md#CHAP_Source.SQLServer.CDC.Selfmanaged)。

## 检查 DMS 用户是否拥有 VIEW DEFINITION 权限。
<a name="CHAP_Tasks.AssessmentReport.SqlServer.ViewDefinition"></a>

**API 密钥：**`sqlserver-check-user-permission-on-view-definition`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 对于没有系统管理员角色的用户，检查 DMS 用户是否拥有 MASTER 数据库的 VIEW DATABASE STATE 权限。
<a name="CHAP_Tasks.AssessmentReport.SqlServer.ViewDatabaseState"></a>

**API 密钥：**`sqlserver-check-user-permission-on-view-database-state`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 检查 DMS 用户是否拥有 VIEW SERVER STATE 权限。
<a name="CHAP_Tasks.AssessmentReport.SqlServer."></a>

**API 密钥：**`sqlserver-check-user-permission-on-view-server-state`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 验证文本 repl 大小参数是否不受限制
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.replsizeparameter"></a>

**API 密钥：**`sqlserver-check-for-max-text-repl-size`

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

有关更多信息，请参阅 [排除 Microsoft SQL Server 中的问题](CHAP_Troubleshooting.md#CHAP_Troubleshooting.SQLServer)。

## 验证批量应用的目标上是否存在主键或唯一索引
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.batchapply"></a>

**API 密钥：**`sqlserver-check-batch-apply-target-pk-ui-absence`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 验证启用批量应用的目标上是否同时存在主键和唯一索引
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.batchapplysimultaneously"></a>

**API 密钥：**`sqlserver-check-batch-apply-target-pk-ui-simultaneously`

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

有关更多信息，请参阅 [使用 SQL Server 作为源代码的限制 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.Limitations)。

## 启用 DMS 验证后，验证表是否有主键或唯一索引
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.dmsvalidation"></a>

**API 密钥：**`sqlserver-check-pk-validity`

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

有关更多信息，请参阅 [Amazon DMS 数据验证](CHAP_Validating.md)。

## 验证 Amazon DMS 用户是否具有访问目标所需的权限
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.dmsprivileges"></a>

**API 密钥：**`sqlserver-check-target-privileges`

该 Amazon DMS 用户在目标数据库上必须至少具有 db\$1owner 用户角色。

有关更多信息，请参阅 [使用 SQL Server 作为目标时的安全要求 Amazon Database Migration Service](CHAP_Target.SQLServer.md#CHAP_Target.SQLServer.Security)。

## 关于使用 MaxFullLoadSubTasks 设置的建议
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.maxfullloadsubtask"></a>

**API 密钥：**`sqlserver-tblnum-for-max-fullload-subtasks`

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

有关更多信息，请参阅 [完全加载任务设置](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md)。

## 检查数字随机化的转换规则
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.gigits.randomise"></a>

**API 密钥：**`sqlserver-datamasking-digits-randomize`

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

## 查看数字掩码的转换规则
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.digits.mask"></a>

**API 密钥：**`sqlserver-datamasking-digits-mask`

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

## 查看哈希掩码的转换规则
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.hash.mask"></a>

**API 密钥：**`sqlserver-datamasking-hash-mask`

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

## 确认数据验证任务设置和数据掩蔽数字随机化未同时启用
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.all.digits.random"></a>

**API 密钥：**`all-to-all-validation-with-datamasking-digits-randomize`

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

## 确认数据验证任务设置和数据掩蔽哈希掩码未同时启用
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.all.hash.mask"></a>

**API 密钥：**`all-to-all-validation-with-datamasking-hash-mask`

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

## 确认数据验证任务设置和数据掩蔽数字掩码未同时启用
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.all.digit.mask"></a>

**API 密钥：**`all-to-all-validation-with-digit-mask`

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

## 验证源数据库中是否至少存在一个选定对象
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.selection.rules"></a>

**API 密钥：**`all-check-source-selection-rules`

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

## 验证源数据库中是否存在辅助约束和索引（非主约束）
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.secondary.constraints"></a>

**API 密钥：**`all-check-secondary-constraints`

此迁移前评估验证源数据库中是否存在辅助约束和索引（外键、校验约束、非聚集索引）。

## 验证目标终端节点不是只读副本
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.target.replica"></a>

**API 密钥：**`all-check-target-read-replica`

此迁移前评估可验证目标终端节点是否未配置为只读副本。 Amazon DMS 需要对目标数据库具有写入权限，并且无法复制到只读副本。

## 验证备份链
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.backup.chain"></a>

**API 密钥：**`sqlserver-check-for-backup-broken-chain`

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

## 检查应用`EXCLUSIVE_AUTOMATIC_TRUNCATION`安全策略的数据库用户权限
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.safeguard.permission"></a>

**API 密钥：**`sqlserver-safeguard-permissions`

此迁移前评估可验证数据库用户是否具有使用`EXCLUSIVE_AUTOMATIC_TRUNCATION`安全策略所需的权限。用户必须向 dmsuser 授予对`dbo.syscategories`和`dbo.sysjobs`系统对象的 SELECT 权限。

有关更多信息，请参阅 [使用 SQL Server 作为源时的端点设置 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.ConnectionAttrib)。

## 验证辅助节点连接和 Amazon DMS 源端点所需的保护属性
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.node.safeguard.policy"></a>

**API 密钥：**`sqlserver-check-sec-node-sg-policy`

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

有关更多信息，请参阅 [使用 SQL Server 作为源时的端点设置 Amazon DMS](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.ConnectionAttrib)。

## 验证端点在连接到辅助节点时 Amazon DMS 是否具有所有必需的额外连接属性 (ECAs)
<a name="CHAP_Tasks.AssessmentReport.Sqlserver.node.without.eca"></a>

**API 密钥：**`sqlserver-check-sec-node-without-eca`

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

有关更多信息，请参阅 [使用自行管理的 SQL Server AlwaysOn 可用性组](CHAP_Source.SQLServer.md#CHAP_Source.SQLServer.AlwaysOn)。