使用AWS DMS迁移Citus云Postgres到Aurora时任务报错如何解决?
Citus云PostgreSQL迁AWS Aurora PG DMS报错1020101解决方案

最新失败消息:流组件致命错误。子任务0线程0收到任务错误通知[reptask/replicationtask.c:2860] [1020101] 执行源循环出错;子任务0的流组件st_0_QOIS7XIGJDKNPY6RXMGYRLJQHY2P7IQBWIBA5NQ运行失败,该流组件已终止[reptask/replicationtask.c:2868] [1020101] 停止原因:FATAL_ERROR,错误级别:致命。
1 源端Citus配置校验
- 确认源库
wal_level参数值为logical,DMS增量迁移依赖PostgreSQL逻辑复制能力,执行SHOW wal_level;即可查询,不符合要求的需联系Citus云服务商调整配置,调整后重启实例生效 - 确认DMS源端账号拥有
REPLICATION权限、待迁移表的SELECT权限、以及对应schema的USAGE权限,权限授予参考命令:
ALTER ROLE <DMS访问源库的账号> WITH REPLICATION; GRANT USAGE ON SCHEMA <待迁移schema名> TO <DMS访问源库的账号>; GRANT SELECT ON ALL TABLES IN SCHEMA <待迁移schema名> TO <DMS访问源库的账号>;
- 确认源库
max_replication_slots、max_wal_senders参数值足够,至少预留1个复制槽和WAL发送进程给DMS任务,执行SHOW max_replication_slots;、SHOW max_wal_senders;即可查询当前配置
2 DMS任务配置校验
- 源端节点引擎选择
PostgreSQL,和Citus底层PG引擎保持一致,不要选择其他数据库引擎 - 增量迁移场景优先选择
test_decoding作为逻辑解码插件,Citus云服务通常默认不开放第三方pglogical插件权限,选错插件会直接触发流组件报错 - 迁移对象规则中排除Citus专属系统schema,包括
citus、pg_cron等,系统对象迁移不被DMS支持,会触发任务终止
3 特殊场景排查
- 提前在目标Aurora PG端安装源库用到的所有自定义扩展,包括
citus扩展(如果需要迁移分布式表结构),DMS无法自动迁移未兼容的自定义数据类型 - 确认源端Citus的安全组、白名单已经放开DMS复制实例的IP和5432端口访问权限
- 可以先单独测试全量迁移任务是否正常,如果全量任务可完成仅增量任务报错,优先排查逻辑复制相关的源端配置
内容的提问来源于stack exchange,提问作者Ashish Karpe
相关产品推荐
相关产品推荐

