我的SQL评估 - AWS 数据库迁移服务

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

我的SQL评估

本节介绍使用 “我的” SQL、“Aurora 我的兼容版” 或 “Aurora 我的SQL兼容版” 无服务器源端点的迁移任务的单独迁移前评估。SQL

验证是否禁用了二进制日志事务压缩

API密钥:mysql-check-binlog-compression

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

有关更多信息,请参阅使用 “我的SQL数据库” 作为源的限制 AWS DMS

验证DMS用户是否对源数据库具有REPLICATIONCLIENT和REPLICATIONSLAVE权限

API密钥:mysql-check-replication-privileges

如果DMS任务迁移类型为CDC或满载 +,则此迁移前评估将验证在源端点连接设置中指定的DMS用户是否拥有REPLICATION CLIENT源数据库的REPLICATION SLAVE权限。CDC

有关更多信息,请参阅使用任何SQL与 My 兼容的数据库作为源。 AWS DMS

验证DMS用户是否拥有源数据库表的SELECT权限

API密钥:mysql-check-select-privileges

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

有关更多信息,请参阅使用任何SQL与 My 兼容的数据库作为源。 AWS DMS

验证源数据库中的 server_id 是否设置为 1 或更大

API密钥:mysql-check-server-id

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

有关来源的更多信息 AWS DMS,请参阅使用自我管理的 “我的SQL兼容” 数据库作为来源。 AWS DMS

验证DMS用户是否具有将 “我的SQL数据库” 作为目标的必要权限

API密钥:mysql-check-target-privileges

此迁移前评估将验证在目标端点连接设置中指定的DMS用户是否具有将 “我的SQL数据库” 作为目标的必要权限。

有关我的SQL源端点先决条件的更多信息,请参阅使用任何与我SQL兼容的数据库作为源。 AWS DMS

验证是否为源数据库设置了自动删除二进制日志

API密钥:mysql-check-expire-logs-days

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

有关来源的更多信息 AWS DMS,请参阅使用自我管理的 “我的SQL兼容” 数据库作为来源。 AWS DMS

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

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

此迁移前评估可验证DMS任务是否包含LOB列。如果LOB列包含在任务范围内,则只能与受限LOB模式BatchApplyEnabled一起使用。

有关该BatchApplyEnabled设置的更多信息,请参阅如何使用DMS批处理应用功能来提高CDC复制性能?

验证表是否使用了 Innodb 以外的存储引擎

API密钥:mysql-check-table-storage-engine

此迁移前评估可验证 Source My SQL 数据库中任何表使用的存储引擎是否是 Innodb 以外的引擎。DMS默认使用InnoDB存储引擎创建目标表。如果您需要使用InnoDB以外的存储引擎,则必须在目标数据库上手动创建表,并将您的DMS任务配置为使用TRUNCATE_BEFORE_LOADDO_NOTHING作为满载任务设置。有关满载任务设置的更多信息,请参阅完全加载任务设置

注意

此迁移前评估不适用于 Aurora 我的兼容版或 Aurora 我的SQL兼容版 Serverl SQL ess。

有关我的SQL终端节点限制的更多信息,请参阅使用 “我的SQL数据库” 作为来源的限制 AWS DMS

验证是否对任何用于迁移的表启用了自动增量

API密钥:mysql-check-auto-increment

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

有关我的SQL终端节点限制的更多信息,请参阅使用 “我的SQL数据库” 作为来源的限制 AWS DMS。有关在 My 中处理标识列的信息SQL,请参阅 AWS DMS:第 2 部分中的处理IDENTITY列

验证数据库二进制日志图像是否设置FULL为支持 DMS CDC

API密钥:mysql-check-binlog-image

此迁移前评估检查源数据库的二进制日志图像是否设置为。FULL在 My 中SQL,该binlog_row_image变量决定了使用该ROW格式时如何写入二进制日志事件。为确保与之兼容DMS和支持CDC,请将binlog_row_image变量设置为FULL。此设置可确保DMS接收足够的信息,以便在迁移期间为目标数据库构造完整的数据操作语言 (DML)。

要将二进制日志图像设置为FULL,请执行以下操作:

  • 对于 AmazonRDS,此值是FULL默认值。

  • 对于托管在本地或亚马逊上的数据库EC2,请在 my.ini (Microsoft Windows) 或 my.cnf (UNIX) 中设置binlog_row_image值。

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

验证源数据库是否为 “我的SQL只读副本”

API密钥:mysql-check-database-role

此迁移前评估可验证源数据库是否为只读副本。要DMS在连接到只读副本时启用CDC支持,请将log_slave_updates参数设置为True。有关使用自行管理的 “我的SQL数据库” 的更多信息,请参阅使用自我管理的 SQL My 兼容数据库作为源 AWS DMS

要将该log_slave_updates值设置为True,请执行以下操作:

  • 对于 AmazonRDS,请使用数据库的参数组。有关使用RDS数据库参数组的信息,请参阅 Amazon RDS 用户指南中的使用参数组

  • 对于托管在本地或亚马逊上的数据库EC2,请在 my.ini (Microsoft Windows) 或 my.cnf (UNIX) 中设置log_slave_updates值。

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

验证表是否有分区,并建议target_table_prep_mode用于满载任务设置

API密钥:mysql-check-table-partition

此迁移前评估检查源数据库中是否存在带有分区的表。DMS在 “我的SQL目标” 上创建没有分区的表。要将分区表迁移到目标系统上的分区表,必须执行以下操作:

  • 在目标 “我的SQL数据库” 中预先创建分区表。

  • 将您的DMS任务配置为使用TRUNCATE_BEFORE_LOADDO_NOTHING作为满载任务设置。

有关我的SQL终端节点限制的更多信息,请参阅使用 “我的SQL数据库” 作为来源的限制 AWS DMS

验证是否DMS支持数据库版本

API密钥:mysql-check-supported-version

此迁移前评估可验证源数据库版本是否与兼容。DMSCDC不支持 Amazon M RDS y 5.5 或更低SQL版本或 8.0.x 以上的我的SQL版本。CDC仅我的 5.6、5.7 或 8.0 SQL 版本支持。有关支持的 “我的SQL版本” 的更多信息,请参阅数据迁移的源端点

验证目标数据库是否配置为设置local_infile为 1

API密钥:mysql-check-target-localinfile-set

此迁移前评估检查目标数据库中的local_infile参数是否设置为 1。DMS要求在目标数据库满负荷期间将 “local_infile” 参数设置为 1。有关更多信息,请参阅 SQL使用从 “我的” 迁移SQL到 “我的” AWS DMS

此评估仅对满负荷或满载任务有效。CDC

验证目标数据库是否有带外键的表

API密钥:mysql-check-fk-target

此迁移前评估检查迁移到 “我的SQL数据库” 的满负荷还是满负荷以及CDC任务中是否有带外键的表。中的默认设置DMS是按字母顺序加载表。具有外键和参照完整性约束的表可能会导致加载失败,因为父表和子表可能无法同时加载。

有关引用完整性的更多信息DMS,请参阅主题中的使用索引、触发器和引用完整性约束改进 AWS DMS 迁移的性能

验证任务范围内的源表是否具有级联约束

API密钥:mysql-check-cascade-constraints

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

有关支持 cascase 限制和其他限制的信息,请参阅主题索引、外键或级联更新内容或删除内容未迁移中的迁移任务疑难解答。 AWS DMS

验证超时值是否适合 “我的SQL源” 或 “目标”

API密钥:mysql-check-target-network-parameter

此迁移前评估检查任务的 “我的SQL终端节点wait_timeoutnet_wait_timeout 和设置是否设置为至少 300 秒。net_read_timeout这是防止迁移期间断开连接所必需的。

有关更多信息,请参阅 与目标的连接我的SQL实例在任务执行期间断开连接