AWS DMS从MongoDB迁移至S3陷入循环错误求助
解决AWS DMS从MongoDB到S3任务循环报错停止更新的问题
核心问题现象
AWS DMS迁移任务从MongoDB 4.2.23抽取数据导出为CSV至S3,运行数日后界面无报错但数据停止更新,日志显示任务陷入detach/reattach循环,关键错误如下:
Failed to open repository of URVPYB3AR42L2WPI3ARERUDPO1W43LQASV3PBXI task. [1000153] Could not get table definition for table: my_table_name. [1000100] Failed to create file writers for on directory: /rdsdbdata/data/tasks/URVPYB3AR42L2WPI3ARERUDPO1W43LQASV3PBXI/bucketFolder [1000100]
排查修复步骤
检查DMS复制实例本地存储
日志中任务依赖的本地目录/rdsdbdata/data/tasks/[task-id]/bucketFolder可能出现异常:- 查看实例磁盘使用率,若空间已满,立即扩容存储或清理临时文件
- 确认DMS服务角色对该目录拥有读写权限,可通过重启复制实例重置权限状态
验证MongoDB源集合状态
Could not get table definition错误指向源端集合问题:- 检查MongoDB中
my_table_name集合是否被删除、重命名,或主键/核心字段结构发生变更 - 若集合结构变更,停止DMS任务,重新加载表映射配置后重启任务
- 检查MongoDB中
排查S3目标端配置
即使报错指向本地存储,S3端问题也可能触发写入失败循环:- 确认DMS使用的IAM角色拥有S3桶的
PutObject、ListBucket权限,桶策略未限制DMS访问 - 检查S3桶是否开启版本控制、生命周期规则或对象锁,导致写入冲突;可临时切换到测试桶验证
- 确认DMS使用的IAM角色拥有S3桶的
重置任务元数据存储
任务本地存储库损坏会导致循环报错:- 停止DMS任务,删除复制实例上的任务临时目录
/rdsdbdata/data/tasks/[task-id]/ - 若无法直接访问实例,创建新的复制实例,迁移任务配置后启动
- 停止DMS任务,删除复制实例上的任务临时目录
升级DMS复制实例版本
旧版本DMS可能存在MongoDB 4.2兼容问题:- 查看AWS DMS版本更新记录,确认是否有针对该场景的修复
- 将复制实例升级到最新稳定版本后重启任务
内容的提问来源于stack exchange,提问作者Renan Nogueira
相关产品推荐
相关产品推荐

