MongoDB secondary节点出现recovering状

2016-12-14  本文已影响2253人  adonisjph

MongoDB做了replica sets之后,secondary节点出现recovering状态

在一次mongo集群挂掉后,重启,发现有一台服务器的mongo节点一直处于recovering状态,不能变为secondary或者primary。

查询官方文档后,找到解决方案,在此记录。

出现原因

备份节点的工作原理过程可以大致描述为,备份节点定期轮询主节点上的数据操作,然后对自己的数据副本进行这些操作,从而保证跟主节点的数据同步。
至于主节点上的所有数据库状态改变的操作,都会存放在一张特定的系统表中。备份节点则是根据这些数据进行自己的数据更新。

上面提到的数据库状态改变的操作,称为oplog(operation log,主节点操作记录)。oplog存储在local数据库的"oplog.rs"表中。副本集中备份节点异步的从主节点同步oplog,然后重新执行它记录的操作,以此达到了数据同步的作用。
关于oplog有几个注意的地方:

数据同步

在副本集中,有两种数据同步方式:

initial sync

当遇到上面例子中无法同步的问题时,只能使用以下两种方式进行initial sync了

上一篇下一篇

猜你喜欢

热点阅读