本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
本节介绍了使用 MySQL、Aurora MySQL 兼容版或 Aurora MySQL 兼容版 Serverless 源端点的迁移任务的各项迁移前评测。
主题
- 验证是否禁用了二进制日志事务压缩
- 验证 DMS 用户是否拥有源数据库的 REPLICATION CLIENT 和 REPLICATION SLAVE 权限
- 验证 DMS 用户是否拥有源数据库表的 SELECT 权限
- 验证源数据库中的 server_id 是否设置为 1 或更大
- 验证 DMS 用户是否拥有将 MySQL 数据库作为目标的必要权限
- 验证是否为源数据库设置了自动删除二进制日志
- 验证仅在将 BatchApplyEnabled 设置为 true 时才使用受限 LOB 模式
- 验证一个表是否使用了 InnoDB 以外的存储引擎
- 验证是否对任何用于迁移的表启用了自动增量
- 验证数据库二进制日志映像是否设置为 FULL 以支持 DMS CDC
- 验证源数据库是否为 MySQL 只读副本
- 验证一个表是否有分区,并建议对完全加载任务设置使用 target_table_prep_mode
- 验证 DMS 是否支持该数据库版本
- 验证目标数据库是否配置为将 local_infile 设置为 1
- 验证目标数据库是否有带外键的表
- 验证任务范围内的源表是否具有级联约束
- 验证超时值是否适用于 MySQL 源或目标
验证是否禁用了二进制日志事务压缩
API 密钥:mysql-check-binlog-compression
此迁移前评测可验证是否禁用了二进制日志事务压缩。 AWS DMS 不支持二进制日志事务压缩。
有关更多信息,请参阅将 MySQL 数据库作为 AWS DMS源的限制。
验证 DMS 用户是否拥有源数据库的 REPLICATION CLIENT 和 REPLICATION SLAVE 权限
API 密钥:mysql-check-replication-privileges
此迁移前评测可验证,如果 DMS 任务迁移类型为 CDC 或完全加载 + CDC,则源端点连接设置中指定的 DMS 用户是否拥有源数据库的 REPLICATION CLIENT
和 REPLICATION SLAVE
权限。
有关更多信息,请参阅将与 MySQL 兼容的任何数据库作为 AWS DMS的源。
验证 DMS 用户是否拥有源数据库表的 SELECT 权限
API 密钥:mysql-check-select-privileges
此迁移前评测可验证源端点连接设置中指定的 DMS 用户是否拥有源数据库表的 SELECT 权限。
有关更多信息,请参阅将与 MySQL 兼容的任何数据库作为 AWS DMS的源。
验证源数据库中的 server_id 是否设置为 1 或更大
API 密钥:mysql-check-server-id
此迁移前评测可验证,对于 CDC 迁移类型,源数据库中的 server_id
服务器变量是否设置为 1 或更大。
有关来源的更多信息 AWS DMS,请参阅使用自我管理的 MySQL 兼容数据库作为来源。 AWS DMS
验证 DMS 用户是否拥有将 MySQL 数据库作为目标的必要权限
API 密钥:mysql-check-target-privileges
此迁移前评测可验证目标端点连接设置中指定的 DMS 用户是否拥有将 MySQL 数据库作为目标的必要权限。
有关 MySQL 源端点先决条件的更多信息,请参阅将与 MySQL 兼容的任何数据库作为 AWS DMS的源。
验证是否为源数据库设置了自动删除二进制日志
API 密钥:mysql-check-expire-logs-days
此迁移前评测可验证您的数据库是否已配置为自动删除二进制日志。EXPIRE_LOGS_DAYS
或 BINLOG_EXPIRE_LOGS_SECONDS
全局系统变量的值应大于零,以防止在迁移过程中过度使用磁盘空间。
有关来源的更多信息 AWS DMS,请参阅使用自我管理的 MySQL 兼容数据库作为来源。 AWS DMS
验证仅在将 BatchApplyEnabled
设置为 true 时才使用受限 LOB 模式
API 密钥:mysql-batch-apply-lob-mode
此迁移前评测可验证 DMS 任务是否包含 LOB 列。如果 LOB 列包含在任务范围内,则只能在受限 LOB 模式下使用 BatchApplyEnabled
。
有关 BatchApplyEnabled
设置的更多信息,请参阅如何使用 DMS 批量应用特征来提高 CDC 复制性能?
验证一个表是否使用了 InnoDB 以外的存储引擎
API 密钥:mysql-check-table-storage-engine
此迁移前评测可验证用于源 MySQL 数据库中任何表的存储引擎是否是 InnoDB 以外的引擎。默认情况下,DMS 将使用 InnoDB 存储引擎创建目标表。如果您需要使用 InnoDB 以外的存储引擎,则必须在目标数据库上手动创建表,并将 DMS 任务配置为使用 TRUNCATE_BEFORE_LOAD
或 DO_NOTHING
作为完全加载任务设置。有关完全加载任务设置的更多信息,请参阅完全加载任务设置。
注意
此迁移前评测不适用于 Aurora MySQL 兼容版或 Aurora MySQL 兼容版 Serverless。
有关 MySQL 端点限制的更多信息,请参阅使用 “我的SQL数据库” 作为来源的限制 AWS DMS。
验证是否对任何用于迁移的表启用了自动增量
API 密钥:mysql-check-auto-increment
此迁移前评测可验证任务中使用的源表是否启用了自动增量。DMS 不会将列上的 AUTO_INCREMENT 属性迁移到目标数据库。
有关 MySQL 端点限制的更多信息,请参阅使用 “我的SQL数据库” 作为来源的限制 AWS DMS。有关在 MySQL 中处理标识列的信息,请参见 AWS DMS:第 2 部分中的处理身份列
验证数据库二进制日志映像是否设置为 FULL
以支持 DMS CDC
API 密钥:mysql-check-binlog-image
此迁移前评测可检查源数据库的二进制日志映像是否设置为 FULL
。在 MySQL 中,binlog_row_image
变量决定了使用 ROW
格式时如何写入二进制日志事件。为确保与 DMS 兼容并支持 CDC,请将 binlog_row_image
变量设置为 FULL
。此设置可确保 DMS 收到足够的信息,以便在迁移期间为目标数据库构造完整的数据操作语言(DML)。
要将二进制日志映像设置为 FULL
,请执行以下操作:
对于 Amazon RDS,此值默认为
FULL
。对于托管在本地或亚马逊上的数据库 EC2,请在
my.ini
(Microsoft Windows) 或my.cnf
(UNIX) 中设置binlog_row_image
值。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
验证源数据库是否为 MySQL 只读副本
API 密钥:mysql-check-database-role
此迁移前评测可验证源数据库是否为只读副本。要在连接到只读副本时启用对 DMS 的 CDC 支持,请将 log_slave_updates
参数设置为 True
。有关使用自管理 MySQL 数据库的更多信息,请参阅使用自我管理的 SQL My 兼容数据库作为源 AWS DMS。
要将 log_slave_updates
值设置为 True
,请执行以下操作:
对于 Amazon RDS,请使用数据库的参数组。有关使用 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 在 MySQL 目标上创建没有分区的表。要将分区表迁移到目标上的分区表,必须执行以下操作:
在目标 MySQL 数据库中预先创建分区表。
将您的 DMS 任务配置为使用
TRUNCATE_BEFORE_LOAD
或DO_NOTHING
作为完全加载任务设置。
有关 MySQL 端点限制的更多信息,请参阅使用 “我的SQL数据库” 作为来源的限制 AWS DMS。
验证 DMS 是否支持该数据库版本
API 密钥:mysql-check-supported-version
此迁移前评测可验证源数据库版本是否与 DMS 兼容。Amazon RDS MySQL 版本 5.5 或更低版本或者高于 8.0.x 的 MySQL 版本不支持 CDC。只有 MySQL 版本 5.6、5.7 或 8.0 支持 CDC。有关支持的 MySQL 版本的更多信息,请参阅数据迁移的源端点。
验证目标数据库是否配置为将 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
此迁移前评测可检查将要迁移到 MySQL 数据库的完全加载任务或者完全加载和 CDC 任务是否有带外键的表。DMS 中的默认设置是按字母顺序加载表。具有外键和引用完整性约束的表可能会导致加载失败,因为父表和子表可能无法同时加载。
有关 DMS 中引用完整性的更多信息,请参阅改进 AWS DMS 迁移的性能主题中的使用索引、触发器和引用完整性约束。
验证任务范围内的源表是否具有级联约束
API 密钥:mysql-check-cascade-constraints
此迁移前评测可检查是否有任何 MySQL 源表具有级联约束。DMS 任务不会迁移或复制级联约束,因为 MySQL 不会在二进制日志中记录这些事件的更改。虽然 AWS DMS 不支持这些限制,但你可以对关系数据库目标使用变通办法。
有关支持级联约束和其他约束的信息,请参阅对 AWS DMS中的迁移任务进行故障排除主题中的索引、外键或级联更新内容或删除内容未迁移。
验证超时值是否适用于 MySQL 源或目标
API 密钥:mysql-check-target-network-parameter
此迁移前评测可检查任务的 MySQL 端点是否将 net_read_timeout
、net_wait_timeout
和 wait_timeout
设置设为至少 300 秒。为防止迁移期间断开连接,需要进行此项设置。
有关更多信息,请参阅 与目标 MySQL 实例的连接在任务期间中断。