MongoDB Atlas M10副本集故障节点的修复与替换方案咨询
先尝试修复当前同步中的节点
先观察同步状态,别急着做新操作
你看到的resyncing 1 server提示,Atlas默认会自动尝试从oplog恢复数据,但节点宕机超过oplog窗口的话,常规增量同步会失败,进而触发全量同步。全量同步的速度完全取决于数据集大小和网络带宽,你升级到M20后资源更充足,大概率是同步速度慢而非卡住,可以再等几小时看看(尤其是数据集较大的情况)。
去Atlas监控面板查看该节点的磁盘IO、CPU使用率:如果资源跑满,说明同步在正常进行;如果资源处于闲置状态,才是同步卡住了。手动触发重新同步流程
进入Atlas的Deployment > Clusters页面,找到目标副本集点击... > Edit Configuration,不需要修改任何配置,直接点击Confirm & Deploy,这会让Atlas重新下发配置,重启同步流程。
如果还是卡住,先把oplog窗口临时调整到168小时(7天),再触发部署,给同步留足足够的时间窗口。
若修复无效,移除宕机节点并添加新节点
先确认主节点状态正常
通过Atlas控制台的Connect > Connect with MongoDB Shell连接到主节点,执行rs.status()命令,确认主节点和至少一个从节点状态正常,否则无法进行后续操作。移除宕机节点
进入集群配置页面,找到状态显示为Unavailable或Syncing的宕机节点,点击节点旁的... > Remove,确认移除后点击Confirm & Deploy,等待Atlas完成节点移除操作(此时副本集会暂时变为2节点:主节点+可用从节点)。添加新节点
回到集群配置页面,点击Add Node,选择和原节点同区域、同规格的节点(如果已升级到M20,就选M20规格),配置完成后点击Confirm & Deploy,Atlas会自动部署新节点并从主节点同步数据。恢复目标节点数量并调整oplog
重复添加节点的步骤,直到副本集达到5个节点;之后在集群配置的Advanced Settings中,将oplog窗口设置为72小时。
注意事项
- 每次部署操作必须等待完成后,再进行下一个操作,不要中途中断流程。
- 大数据集的全量同步可能需要数小时,期间只需监控节点状态即可。
- 确保集群有足够的磁盘空间,全量同步会占用额外的磁盘资源。
内容的提问来源于stack exchange,提问作者Franck Anso

