本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
MariaDB 评估
本节介绍使用MariaDB源端点的迁移任务的单独迁移前评估。
要使用 Amazon DMS API 创建个人预迁移评估,请使用列出的 API 密钥作为 StartReplicationTaskAssessmentRun操作Include
参数。
主题
- 验证表是否使用 Innodb 以外的存储引擎
- 验证是否对任何用于迁移的表启用了自动增量
- 验证数据库二进制日志格式是否设置ROW为支持 DMS CDC
- 验证数据库二进制日志图像是否设置FULL为支持 DMS CDC
- 验证源数据库是否为 MariaDB 只读副本
- 验证表是否有分区,并建议TRUNCATE_BEFORE_LOAD或DO_NOTHING用于满载任务设置
- 验证 DMS 是否支持数据库版本
- 验证目标数据库是否配置为设置local_infile为 1
- 验证目标数据库是否有带外键的表
- 验证任务范围内的源表是否具有级联约束
- 验证任务范围内的源表是否已生成列
- 验证超时值是否适合于 MariaDB 源
- 验证超时值是否适合于 MariaDB 目标
验证表是否使用 Innodb 以外的存储引擎
API 密钥:mariadb-check-table-storage-engine
此迁移前评估可验证用于源 MariaDB 数据库中任何表的存储引擎是否是 Innodb 以外的引擎。默认情况下,DMS使用InnoDB存储引擎创建目标表。如果您需要使用 InnoDB 以外的存储引擎,则必须在目标数据库上手动创建表,并将您的 DMS 任务配置为使用TRUNCATE_BEFORE_LOAD
或DO_NOTHING
作为满载任务设置。有关满载任务设置的更多信息,请参阅完全加载任务设置。
有关 MariaDB 端点限制的更多信息,请参阅。使用 MySQL 数据库作为源代码的限制 Amazon DMS
验证是否对任何用于迁移的表启用了自动增量
API 密钥:mariadb-check-auto-increment
此迁移前评估可验证任务中使用的源表是否启用了自动增量。DMS 不会将列上的 AUTO_INCREMENT 属性迁移到目标数据库。
有关 MariaDB 端点限制的更多信息,请参阅。使用 MySQL 数据库作为源代码的限制 Amazon DMS有关在 MariaDB 中处理标识列的信息,请参见 Amazon DMS:第 2 部分中的处理身份列
验证数据库二进制日志格式是否设置ROW
为支持 DMS CDC
API 密钥:mariadb-check-binlog-format
此迁移前评估将验证源数据库二进制日志格式是否设置为ROW
支持 DMS 更改数据捕获 (CDC)。
要将二进制日志格式设置为ROW
,请执行以下操作:
对于 Amazon RDS,请使用数据库的参数组。有关使用 RDS 参数组的信息,请参阅 A mazon RDS 用户指南中的配置 MySQL 二进制日志记录。
对于托管在本地或亚马逊 EC2 上的数据库,请在
my.ini
(Microsoft Windows) 或my.cnf
(UNIX) 中设置binlog_format
值。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
有关自托管 MariaDB 服务器的更多信息,请参阅。使用自管理的 MySQL 兼容数据库作为源 Amazon DMS
验证数据库二进制日志图像是否设置FULL
为支持 DMS CDC
API 密钥:mariadb-check-binlog-image
此迁移前评估检查源数据库的二进制日志图像是否设置为。FULL
在MariaDB中,该binlog_row_image
变量决定了使用该格式时如何写入二进制日志事件。ROW
为确保与 DMS 兼容并支持 CDC,请FULL
将binlog_row_image
变量设置为。此设置可确保 DMS 收到足够的信息,以便在迁移期间为目标数据库构建完整的数据操作语言 (DML)。
要将二进制日志图像设置为FULL
,请执行以下操作:
对于 Amazon RDS,此值是
FULL
默认值。对于托管在本地或亚马逊 EC2 上的数据库,请在
my.ini
(Microsoft Windows) 或my.cnf
(UNIX) 中设置binlog_row_image
值。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
有关自托管 MariaDB 服务器的更多信息,请参阅。使用自管理的 MySQL 兼容数据库作为源 Amazon DMS
验证源数据库是否为 MariaDB 只读副本
API 密钥:mariadb-check-database-role
此迁移前评估可验证源数据库是否为只读副本。要在连接到只读副本时启用 DMS 的 CDC 支持,请将log_slave_updates
参数设置为。True
有关使用自行管理的 MySQL 数据库的更多信息,请参阅使用自管理的 MySQL 兼容数据库作为源 Amazon DMS。
要将该log_slave_updates
值设置为True
,请执行以下操作:
对于 Amazon RDS,请使用数据库的参数组。有关使用 RDS 数据库参数组的信息,请参阅 Amazon RDS 用户指南中的使用参数组。
对于托管在本地或亚马逊 EC2 上的数据库,请在
my.ini
(Microsoft Windows) 或my.cnf
(UNIX) 中设置log_slave_updates
值。
此评估仅对完全加载迁移和 CDC 迁移或仅 CDC 迁移有效。此评估对仅完全加载迁移无效。
验证表是否有分区,并建议TRUNCATE_BEFORE_LOAD
或DO_NOTHING
用于满载任务设置
API 密钥:mariadb-check-table-partition
此迁移前评估检查源数据库中是否存在带有分区的表。DMS 在 MariaDB 目标上创建没有分区的表。要将分区表迁移到目标系统上的分区表,必须执行以下操作:
在目标 MariaDB 数据库中预先创建分区表。
将您的 DMS 任务配置为使用
TRUNCATE_BEFORE_LOAD
或DO_NOTHING
作为满载任务设置。
有关 MariaDB 端点限制的更多信息,请参阅。使用 MySQL 数据库作为源代码的限制 Amazon DMS
验证 DMS 是否支持数据库版本
API 密钥:mariadb-check-supported-version
此迁移前评估验证源数据库版本是否与 DMS 兼容。亚马逊 RDS MariaDB 10.4 或更低版本或 10.11 以上的 MySQL 版本不支持 CDC。有关支持的 MariaDB 版本的更多信息,请参阅。数据迁移的源端点
验证目标数据库是否配置为设置local_infile
为 1
API 密钥:mariadb-check-target-localinfile-set
此迁移前评估检查目标数据库中的local_infile
参数是否设置为 1。在目标数据库满负荷期间,DMS 要求将 “local_infile” 参数设置为 1。有关更多信息,请参阅 使用 Amazon DMS从 MySQL 迁移到 MySQL。。
此评估仅对满负荷任务有效。
验证目标数据库是否有带外键的表
API 密钥:mariadb-check-fk-target
此迁移前评估检查迁移到MariaDB数据库的CDC任务是否包含带有外键的表。DMS 中的默认设置是按字母顺序加载表。具有外键和参照完整性约束的表可能会导致加载失败,因为父表和子表可能无法同时加载。
有关 DMS 中引用完整性的更多信息,请参阅主题中的使用索引、触发器和参照完整性约束。改进 Amazon DMS 迁移的性能
验证任务范围内的源表是否具有级联约束
API 密钥:mariadb-check-cascade-constraints
此迁移前评估检查是否有任何MariaDB源表具有级联约束。DMS 任务不会迁移或复制级联约束,因为 MariaDB 不会在二进制日志中记录这些事件的更改。虽然 Amazon DMS 不支持这些限制,但你可以对关系数据库目标使用变通办法。
有关支持 cascase 限制和其他限制的信息,请参阅主题索引、外键或级联更新内容或删除内容未迁移中的迁移任务疑难解答。 Amazon DMS
验证任务范围内的源表是否已生成列
API 密钥:mariadb-check-generated-columns
此迁移前评估检查是否有任何MariaDB源表已生成列。DMS 任务不会迁移或复制生成的列。
验证超时值是否适合于 MariaDB 源
API 密钥:mariadb-check-source-network-parameter
此迁移前评估检查任务的 MariaDB 源端点是否net_read_timeout
将net_wait_timeout
wait_timeout
和设置设置为至少 300 秒。这是防止迁移期间断开连接所必需的。
有关更多信息,请参阅 与目标 MySQL 实例的连接在任务期间中断。
验证超时值是否适合于 MariaDB 目标
API 密钥:mariadb-check-target-network-parameter
此迁移前评估检查任务的 MariaDB 目标端点是否net_read_timeout
将net_wait_timeout
wait_timeout
和设置设置为至少 300 秒。这是防止迁移期间断开连接所必需的。
有关更多信息,请参阅 与目标 MySQL 实例的连接在任务期间中断。