AWS DMS显示“Load complete, replication ongoing”但MongoDB到DocumentDB迁移失败
检查DMS任务日志详情
进入DMS控制台找到对应迁移任务,查看任务日志中的报错或警告信息,重点关注CDC相关条目,确认是否成功捕获MongoDB的oplog变更,排查是否存在权限不足、集合过滤规则错误等问题。验证MongoDB oplog配置
登录源MongoDB实例,执行db.getReplicationInfo(),检查oplog的大小与留存时间。若oplog容量过小,可能导致DMS无法捕获后续变更(尤其是全量加载完成后的增量数据)。建议将副本集的oplogSizeMB设置为磁盘容量的5%-10%(根据业务变更频率调整)。确认变更流启用范围
你执行的db.adminCommand({modifyChangeStreams: 1,database: "db_name",collection: "",enable: true})仅针对单个数据库,若有多个需要迁移的库,需逐个执行该命令,或使用database: ""全局启用(注意账号权限)。
执行db.runCommand({listChangeStreams: 1})检查当前启用的变更流配置,确保目标数据库在列表内。检查DMS端点权限
源MongoDB端点账号需具备read、readWrite(用于变更流捕获)及clusterMonitor权限,确保能读取oplog与变更流数据;目标DocumentDB端点账号需具备readWrite权限,确保可写入数据到目标集合。验证网络与安全组配置
确认DMS复制实例的安全组允许访问源MongoDB的27017端口及目标DocumentDB的默认端口(27017);同时检查EC2实例的安全组是否开放给DMS复制实例的IP,DocumentDB的安全组也需允许DMS复制实例访问。核对迁移任务表映射规则
检查DMS任务的表映射配置,确认已正确包含需要迁移的数据库与集合。注意MongoDB集合名称大小写敏感,排查是否误设exclude规则或匹配错误。手动测试变更同步
在源MongoDB的目标库中插入一条测试数据,查看DMS任务统计信息中CDC Inserts的计数是否增加:- 若计数增加但目标库无数据,检查目标端点的写入权限或目标集合是否存在;
- 若计数未增加,说明变更流未被捕获,回到oplog与变更流配置步骤重新排查。
内容的提问来源于stack exchange,提问作者Aashir Zia

