

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

# MariaDB 评测
<a name="CHAP_Tasks.AssessmentReport.MariaDB"></a>

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

要使用 Amazon DMS API 创建个人预迁移评估，请使用列出的 API 密钥作为[ StartReplicationTaskAssessmentRun](https://docs.amazonaws.cn/dms/latest/APIReference/API_StartReplicationTaskAssessmentRun.html)操作`Include`参数。

**Topics**
+ [验证源数据库中的 `server_id` 是否设置为 1 或更大](#CHAP_Tasks.AssessmentReport.MariaDB.ServerID)
+ [验证是否为源数据库设置了自动删除二进制日志](#CHAP_Tasks.AssessmentReport.MariaDB.AutomaticRemovalBinaryLogs)
+ [验证仅在设置为 true 时 BatchApplyEnabled 才使用受限 LOB 模式](#CHAP_Tasks.AssessmentReport.MariaDB.LimitedLOBMode)
+ [验证是否禁用了二进制日志事务压缩](#CHAP_Tasks.AssessmentReport.MariaDB.BinaryLogTransactionCompression)
+ [验证 DMS 用户是否拥有源数据库的 REPLICATION CLIENT 和 REPLICATION SLAVE 权限](#CHAP_Tasks.AssessmentReport.MariaDB.ReplicationClientSlavePrivileges)
+ [验证 DMS 用户是否拥有源数据库表的 SELECT 权限](#CHAP_Tasks.AssessmentReport.MariaDB.DMSUserSELECTPermissions)
+ [验证 DMS 用户是否拥有将 MySQL 兼容数据库作为目标的必要权限](#CHAP_Tasks.AssessmentReport.MariaDB.DMSUserNecessaryPermissions)
+ [验证一个表是否使用了 InnoDB 以外的存储引擎](#CHAP_Tasks.AssessmentReport.MariaDB.Innodb)
+ [验证是否对任何用于迁移的表启用了自动增量](#CHAP_Tasks.AssessmentReport.MariaDB.AutoIncrement)
+ [验证数据库二进制日志格式是否设置为 `ROW` 以支持 DMS CDC](#CHAP_Tasks.AssessmentReport.MariaDB.BinlogFormat)
+ [验证数据库二进制日志映像是否设置为 `FULL` 以支持 DMS CDC](#CHAP_Tasks.AssessmentReport.MariaDB.BinlogImage)
+ [验证源数据库是否为 MariaDB 只读副本](#CHAP_Tasks.AssessmentReport.MariaDB.ReadReplica)
+ [验证一个表是否有分区，并建议对完全加载任务设置使用 `TRUNCATE_BEFORE_LOAD` 或 `DO_NOTHING`](#CHAP_Tasks.AssessmentReport.MariaDB.FullLoadTaskSettings)
+ [验证 DMS 是否支持该数据库版本](#CHAP_Tasks.AssessmentReport.MariaDB.DatabaseVersion)
+ [验证目标数据库是否配置为将 `local_infile` 设置为 1](#CHAP_Tasks.AssessmentReport.MariaDB.LocalInfile)
+ [验证目标数据库是否有带外键的表](#CHAP_Tasks.AssessmentReport.MariaDB.ForeignKeys)
+ [验证任务范围内的源表是否具有级联约束](#CHAP_Tasks.AssessmentReport.MariaDB.Cascade)
+ [验证任务范围内的源表是否已生成列](#CHAP_Tasks.AssessmentReport.MariaDB.GeneratedColumns)
+ [验证超时值是否适用于 MariaDB 源](#CHAP_Tasks.AssessmentReport.MariaDB.Timeout.Source)
+ [验证超时值是否适用于 MariaDB 目标](#CHAP_Tasks.AssessmentReport.MariaDB.Timeout.Target)
+ [验证 `max_statement_time` 数据库参数](#CHAP_Tasks.AssessmentReport.MariaDB.database.parameter)
+ [验证批量应用的目标上是否存在主键或唯一索引](#CHAP_Tasks.AssessmentReport.MariaDB.batchapply)
+ [验证批量应用的目标上是否同时存在主键和唯一索引](#CHAP_Tasks.AssessmentReport.MariaDB.batchapply.simultaneous)
+ [验证在完全加载期间目标数据库上是否启用了二级索引](#CHAP_Tasks.AssessmentReport.MariaDB.secondary.indexes)
+ [启用 DMS 验证后，验证表是否有主键或唯一索引](#CHAP_Tasks.AssessmentReport.MariaDB.dmsvalidation)
+ [关于使用 `MaxFullLoadSubTasks` 设置的建议](#CHAP_Tasks.AssessmentReport.MariaDB.maxfullload)
+ [检查数字随机化的转换规则](#CHAP_Tasks.AssessmentReport.MariaDB.digits.randomize)
+ [查看数字掩码的转换规则](#CHAP_Tasks.AssessmentReport.MariaDB.digits.mask)
+ [查看哈希掩码的转换规则](#CHAP_Tasks.AssessmentReport.MariaDB.hash.mask)
+ [确认数据验证任务设置和数据掩蔽数字随机化未同时启用](#CHAP_Tasks.AssessmentReport.MariaDB.all.digits.random)
+ [确认数据验证任务设置和数据掩蔽哈希掩码未同时启用](#CHAP_Tasks.AssessmentReport.MariaDB.all.hash.mask)
+ [确认数据验证任务设置和数据掩蔽数字掩码未同时启用](#CHAP_Tasks.AssessmentReport.MariaDB.all.digit.mask)
+ [检查二进制日志保留时间是否设置正确](#CHAP_Tasks.AssessmentReport.MariaDB.retention.time)
+ [检查源表是否没有不可见列](#CHAP_Tasks.AssessmentReport.MariaDB.invisible.columns)
+ [验证源数据库中是否至少存在一个选定对象](#CHAP_Tasks.AssessmentReport.MariaDB.selection.rules)
+ [验证是否已`skipTableSuspensionForPartitionDdl`为分区表启用](#CHAP_Tasks.AssessmentReport.MariaDB.suspension.ddl)
+ [验证源数据库中是否存在辅助约束和索引（非主约束）](#CHAP_Tasks.AssessmentReport.MariaDB.secondary.constraints)

## 验证源数据库中的 `server_id` 是否设置为 1 或更大
<a name="CHAP_Tasks.AssessmentReport.MariaDB.ServerID"></a>

**API 密钥：**`mariadb-check-server-id`

此迁移前评测可验证，对于 CDC 迁移类型，源数据库中的 `server_id` 服务器变量是否设置为 1 或更大。

有关 MariaDB 端点限制的更多信息，请参阅[将与 MySQL 兼容的自管理数据库作为 Amazon DMS的源](https://docs.amazonaws.cn/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.CustomerManaged)。

## 验证是否为源数据库设置了自动删除二进制日志
<a name="CHAP_Tasks.AssessmentReport.MariaDB.AutomaticRemovalBinaryLogs"></a>

**API 密钥：**`mariadb-check-expire-logs-days`

此迁移前评测可验证您的数据库是否已配置为自动删除二进制日志。`EXPIRE_LOGS_DAYS` 或 `BINLOG_EXPIRE_LOGS_SECONDS` 全局系统变量的值应大于零，以防止在迁移过程中过度使用磁盘空间。

有关 MariaDB 端点限制的更多信息，请参阅[将与 MySQL 兼容的自管理数据库作为 Amazon DMS的源](https://docs.amazonaws.cn/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.CustomerManaged)。

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

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

如果复制中包含 LOB 列，则只能在受限 LOB 模式下使用 `BatchApplyEnabled`。使用 LOB 模式的其他选项将导致批处理失败， Amazon DMS 并将逐一处理更改。建议您将这些表移到各自的任务中，改用事务性应用模式。

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

## 验证是否禁用了二进制日志事务压缩
<a name="CHAP_Tasks.AssessmentReport.MariaDB.BinaryLogTransactionCompression"></a>

**API 密钥：**`mariadb-check-binlog-compression`

此迁移前评估可验证是否禁用了二进制日志事务压缩。 Amazon DMS 不支持二进制日志事务压缩。

有关更多信息，请参阅[将 MySQL 数据库作为 Amazon DMS源的限制](https://docs.amazonaws.cn/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Limitations)。

## 验证 DMS 用户是否拥有源数据库的 REPLICATION CLIENT 和 REPLICATION SLAVE 权限
<a name="CHAP_Tasks.AssessmentReport.MariaDB.ReplicationClientSlavePrivileges"></a>

**API 密钥：**`mariadb-check-replication-privileges`

此迁移前评测可验证，如果 DMS 任务迁移类型为 CDC 或完全加载 \$1 CDC，则源端点连接设置中指定的 DMS 用户是否拥有源数据库的 `REPLICATION CLIENT` 和 `REPLICATION SLAVE` 权限。

有关更多信息，请参阅[将与 MySQL 兼容的任何数据库作为 Amazon DMS的源](https://docs.amazonaws.cn/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Prerequisites)。

## 验证 DMS 用户是否拥有源数据库表的 SELECT 权限
<a name="CHAP_Tasks.AssessmentReport.MariaDB.DMSUserSELECTPermissions"></a>

**API 密钥：**`mariadb-check-select-privileges`

此迁移前评测可验证源端点连接设置中指定的 DMS 用户是否拥有源数据库表的 `SELECT` 权限。

有关更多信息，请参阅[将与 MySQL 兼容的任何数据库作为 Amazon DMS的源](https://docs.amazonaws.cn/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Prerequisites)。

## 验证 DMS 用户是否拥有将 MySQL 兼容数据库作为目标的必要权限
<a name="CHAP_Tasks.AssessmentReport.MariaDB.DMSUserNecessaryPermissions"></a>

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

此迁移前评测可验证目标端点连接设置中指定的 DMS 用户是否拥有将 MySQL 兼容数据库作为目标的必要权限。

有关更多信息，请参阅[将与 MySQL 兼容的任何数据库作为 Amazon DMS的源](https://docs.amazonaws.cn/dms/latest/userguide/CHAP_Source.MySQL.html#CHAP_Source.MySQL.Prerequisites)。

## 验证一个表是否使用了 InnoDB 以外的存储引擎
<a name="CHAP_Tasks.AssessmentReport.MariaDB.Innodb"></a>

**API 密钥：**`mariadb-check-table-storage-engine`

此迁移前评测可验证用于源 MariaDB 数据库中任何表的存储引擎是否是 InnoDB 以外的引擎。默认情况下，DMS 将使用 InnoDB 存储引擎创建目标表。如果您需要使用 InnoDB 以外的存储引擎，则必须在目标数据库上手动创建表，并将 DMS 任务配置为使用 `TRUNCATE_BEFORE_LOAD` 或 `DO_NOTHING` 作为完全加载任务设置。有关完全加载任务设置的更多信息，请参阅[完全加载任务设置](CHAP_Tasks.CustomizingTasks.TaskSettings.FullLoad.md)。

有关 MariaDB 端点限制的更多信息，请参阅[使用 MySQL 数据库作为源代码的限制 Amazon DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.Limitations)。

## 验证是否对任何用于迁移的表启用了自动增量
<a name="CHAP_Tasks.AssessmentReport.MariaDB.AutoIncrement"></a>

**API 密钥：**`mariadb-check-auto-increment`

此迁移前评测可验证任务中使用的源表是否启用了自动增量。DMS 不会将列上的 AUTO\$1INCREMENT 属性迁移到目标数据库。

有关 MariaDB 端点限制的更多信息，请参阅[使用 MySQL 数据库作为源代码的限制 Amazon DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.Limitations)。有关在 MariaDB 中处理标识列的信息，请参见 [Amazon DMS：第 2 部分中的处理身份列](https://www.amazonaws.cn/blogs/database/handle-identity-columns-in-aws-dms-part-2/)。

## 验证数据库二进制日志格式是否设置为 `ROW` 以支持 DMS CDC
<a name="CHAP_Tasks.AssessmentReport.MariaDB.BinlogFormat"></a>

**API 密钥：**`mariadb-check-binlog-format`

此迁移前评测可验证源数据库二进制日志格式是否设置为 `ROW` 以支持 DMS 更改数据捕获（CDC）。

要将二进制日志格式设置为 `ROW`，请执行以下操作：
+ 对于 Amazon RDS，请使用数据库的参数组。有关使用 RDS 参数组的信息，请参阅《Amazon RDS 用户指南》**中的[配置 MySQL 二进制日志记录](https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_LogAccess.MySQL.BinaryFormat.html)。
+ 对于托管在本地或 Amazon EC2 上的数据库，请在 `my.ini`（Microsoft Windows）或 `my.cnf`（UNIX）中设置 `binlog_format` 值。

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

有关自托管 MariaDB 服务器的更多信息，请参阅[使用自管理的 MySQL 兼容数据库作为源 Amazon DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.CustomerManaged)。

## 验证数据库二进制日志映像是否设置为 `FULL` 以支持 DMS CDC
<a name="CHAP_Tasks.AssessmentReport.MariaDB.BinlogImage"></a>

**API 密钥：**`mariadb-check-binlog-image`

此迁移前评测可检查源数据库的二进制日志映像是否设置为 `FULL`。在 MariaDB 中，`binlog_row_image` 变量决定了使用 `ROW` 格式时如何写入二进制日志事件。为确保与 DMS 兼容并支持 CDC，请将 `binlog_row_image` 变量设置为 `FULL`。此设置可确保 DMS 收到足够的信息，以便在迁移期间为目标数据库构造完整的数据操作语言（DML）。

要将二进制日志映像设置为 `FULL`，请执行以下操作：
+ 对于 Amazon RDS，此值默认为 `FULL`。
+ 对于托管在本地或 Amazon EC2 上的数据库，请在 `my.ini`（Microsoft Windows）或 `my.cnf`（UNIX）中设置 `binlog_row_image` 值。

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

有关自托管 MariaDB 服务器的更多信息，请参阅[使用自管理的 MySQL 兼容数据库作为源 Amazon DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.CustomerManaged)。

## 验证源数据库是否为 MariaDB 只读副本
<a name="CHAP_Tasks.AssessmentReport.MariaDB.ReadReplica"></a>

**API 密钥：**`mariadb-check-database-role`

此迁移前评测可验证源数据库是否为只读副本。要在连接到只读副本时启用对 DMS 的 CDC 支持，请将 `log_slave_updates` 参数设置为 `True`。有关使用自管理 MySQL 数据库的更多信息，请参阅[使用自管理的 MySQL 兼容数据库作为源 Amazon DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.CustomerManaged)。

要将 `log_slave_updates` 值设置为 `True`，请执行以下操作：
+ 对于 Amazon RDS，请使用数据库的参数组。有关使用 RDS 数据库参数组的信息，请参阅《Amazon RDS 用户指南》**中的[使用参数组](https://docs.amazonaws.cn/AmazonRDS/latest/UserGuide/USER_WorkingWithParamGroups.html)。
+ 对于托管在本地或 Amazon EC2 上的数据库，请在 `my.ini`（Microsoft Windows）或 `my.cnf`（UNIX）中设置 `log_slave_updates` 值。

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

## 验证一个表是否有分区，并建议对完全加载任务设置使用 `TRUNCATE_BEFORE_LOAD` 或 `DO_NOTHING`
<a name="CHAP_Tasks.AssessmentReport.MariaDB.FullLoadTaskSettings"></a>

**API 密钥：**`mariadb-check-table-partition`

此迁移前评测可检查源数据库中是否存在带有分区的表。DMS 在 MariaDB 目标上创建没有分区的表。要将分区表迁移到目标上的分区表，必须执行以下操作：
+ 在目标 MariaDB 数据库中预先创建分区表。
+ 将您的 DMS 任务配置为使用 `TRUNCATE_BEFORE_LOAD` 或 `DO_NOTHING` 作为完全加载任务设置。

有关 MariaDB 端点限制的更多信息，请参阅[使用 MySQL 数据库作为源代码的限制 Amazon DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.Limitations)。

## 验证 DMS 是否支持该数据库版本
<a name="CHAP_Tasks.AssessmentReport.MariaDB.DatabaseVersion"></a>

**API 密钥：**`mariadb-check-supported-version`

此迁移前评测可验证源数据库版本是否与 DMS 兼容。Amazon RDS MariaDB 版本 10.4 或更低版本或者高于 10.11 的 MySQL 版本不支持 CDC。有关支持的 MariaDB 版本的更多信息，请参阅[数据迁移的源端点](CHAP_Introduction.Sources.md#CHAP_Introduction.Sources.DataMigration)。

## 验证目标数据库是否配置为将 `local_infile` 设置为 1
<a name="CHAP_Tasks.AssessmentReport.MariaDB.LocalInfile"></a>

**API 密钥：**`mariadb-check-target-localinfile-set`

 此迁移前评测可检查目标数据库中的 `local_infile` 参数是否设置为 1。在目标数据库中完全加载期间，DMS 要求将“local\$1infile”参数设置为 1。有关更多信息，请参阅 [使用从 MySQL 迁移到 MySQL Amazon DMS](CHAP_Source.MySQL.md#CHAP_Source.MySQL.Homogeneous)。

此评测仅对完全加载任务有效。

## 验证目标数据库是否有带外键的表
<a name="CHAP_Tasks.AssessmentReport.MariaDB.ForeignKeys"></a>

**API 密钥：**`mariadb-check-fk-target`

此迁移前评测可检查将要迁移到 MariaDB 数据库的完全加载任务或者完全加载和 CDC 任务是否有带外键的表。DMS 中的默认设置是按字母顺序加载表。具有外键和引用完整性约束的表可能会导致加载失败，因为父表和子表可能无法同时加载。

有关 DMS 中引用完整性的更多信息，请参阅[提高 Amazon DMS 迁移性能](CHAP_BestPractices.md#CHAP_BestPractices.Performance)主题中的**使用索引、触发器和引用完整性约束**。

## 验证任务范围内的源表是否具有级联约束
<a name="CHAP_Tasks.AssessmentReport.MariaDB.Cascade"></a>

**API 密钥：**`mariadb-check-cascade-constraints`

此迁移前评测可检查是否有任何 MariaDB 源表具有级联约束。DMS 任务不会迁移或复制级联约束，因为 MariaDB 不会在二进制日志中记录这些事件的更改。虽然 Amazon DMS 不支持这些限制，但你可以对关系数据库目标使用变通办法。

有关支持级联约束和其他约束的信息，请参阅**对 Amazon DMS中的迁移任务进行故障排除**主题中的[索引、外键或级联更新内容或删除内容未迁移](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.FKsAndIndexes)。

## 验证任务范围内的源表是否已生成列
<a name="CHAP_Tasks.AssessmentReport.MariaDB.GeneratedColumns"></a>

**API 密钥：**`mariadb-check-generated-columns`

此迁移前评测可检查是否有任何 MariaDB 源表已生成列。DMS 任务不会迁移或复制生成的列。

有关如何迁移生成的列的信息，请参阅[与目标 MySQL 实例的连接在任务期间中断](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.ConnectionDisconnect)。

## 验证超时值是否适用于 MariaDB 源
<a name="CHAP_Tasks.AssessmentReport.MariaDB.Timeout.Source"></a>

**API 密钥：**`mariadb-check-source-network-parameter`

此迁移前评测可检查任务的 MariaDB 源端点是否将 `net_read_timeout`、`net_write_timeout` 和 `wait_timeout` 设置设为至少 300 秒。为防止迁移期间断开连接，需要进行此项设置。

有关更多信息，请参阅 [与目标 MySQL 实例的连接在任务期间中断](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.ConnectionDisconnect)。

## 验证超时值是否适用于 MariaDB 目标
<a name="CHAP_Tasks.AssessmentReport.MariaDB.Timeout.Target"></a>

**API 密钥：**`mariadb-check-target-network-parameter`

此迁移前评测可检查任务的 MariaDB 目标端点是否将 `net_read_timeout`、`net_write_timeout` 和 `wait_timeout` 设置设为至少 300 秒。为防止迁移期间断开连接，需要进行此项设置。

有关更多信息，请参阅 [与目标 MySQL 实例的连接在任务期间中断](CHAP_Troubleshooting.md#CHAP_Troubleshooting.MySQL.ConnectionDisconnect)。

## 验证 `max_statement_time` 数据库参数
<a name="CHAP_Tasks.AssessmentReport.MariaDB.database.parameter"></a>

**API 密钥：**`mariadb-check-max-statement-time`

Amazon DMS 验证数据库源参数`max_statement_time`是否设置为 0 以外的值。需要将此参数设置为 0 以适应 DMS 完全加载过程。您可以考虑在完全加载完成后更改参数值，因为将其设置为 0 以外的值可能会导致数据丢失。

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

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

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

有关更多信息，请参阅 [使用与 MySQL 兼容的数据库作为目标 Amazon Database Migration Service](CHAP_Target.MySQL.md)。

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

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

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

有关更多信息，请参阅 [使用与 MySQL 兼容的数据库作为目标 Amazon Database Migration Service](CHAP_Target.MySQL.md)。

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

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

考虑禁用或移除目标数据库中的二级索引。二级索引可能会影响完全加载期间的迁移性能。建议在应用缓存的更改之前启用二级索引。

有关更多信息，请参阅 [的最佳实践 Amazon Database Migration Service](CHAP_BestPractices.md)。

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

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

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

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

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

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

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

## 检查数字随机化的转换规则
<a name="CHAP_Tasks.AssessmentReport.MariaDB.digits.randomize"></a>

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

## 检查二进制日志保留时间是否设置正确
<a name="CHAP_Tasks.AssessmentReport.MariaDB.retention.time"></a>

**API 密钥：**`mariadb-check-binlog-retention-time`

此迁移前评测可验证“`binlog retention hours`”的值是否大于 24 小时。

## 检查源表是否没有不可见列
<a name="CHAP_Tasks.AssessmentReport.MariaDB.invisible.columns"></a>

**API 密钥：**`mariadb-check-invisible-columns`

此迁移前评估可验证源表是否没有不可见列。 Amazon DMS 不会迁移源数据库中不可见列的数据。

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

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

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

## 验证是否已`skipTableSuspensionForPartitionDdl`为分区表启用
<a name="CHAP_Tasks.AssessmentReport.MariaDB.suspension.ddl"></a>

**API 密钥：**`mariadb-check-skip-table-suspension-partition-ddl`

此迁移前评估可检测源数据库中的分区表并验证参数设置。`skipTableSuspensionForPartitionDdl`不设置此参数可能会导致迁移期间出现不必要的表暂停。

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

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

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

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