目前使用 AWS DMS 将数据从我们的 Aurora MySQL 数据库复制到 S3。这产生了一个低延迟的数据湖,我们可以使用它来获取所有发生的变化的沿袭,并从中构建额外的数据管道。但是,当通过 pt-online-schema-change 脚本进行更改时,修改后的表将完全停止复制。有什么理由会发生这种情况吗?
运行更改后,日志显示源表的架构不再符合 DMS 的预期,并且跳过了 CDC 更改。唯一可能的原因是 DMS 没有正确跟踪 DML 语句。
- 使用 percona 触发的表更改(在这种情况下,添加列)
- AWS DMS 同步的新表
- 触发器在 AWS DMS 中添加了不支持的抛出警告
- 表已重命名
- 表列数不匹配,忽略多余的列。
- 表列大小不匹配,跳过。
值得注意的是,AWS DMS 和 S3 支持 Percona 使用的所有 DML 语句(外部触发器)作为目标。有没有其他人对这种情况或工具组合有任何经验?
编辑:
下面是使用 Percona 进行这些更改的命令示例:
pt-online-schema-change --host=<host> \
--user=<user> \
--ask-pass \
--execute \
--no-drop-old-table \
--no-check-alter \
--alter="ADD COLUMN db_row_update_stamp TIMESTAMP(3) NOT NULL DEFAULT CURRENT_TIMESTAMP(3) ON UPDATE CURRENT_TIMESTAMP(3)" \
D=<db>,t=<REPLACE_TABLE_NAME_HERE>