一、问题
当因为mongod服务挂掉太久,或者因为网络等原因导致副本集成员跟不上oplog,就会变成recovering状态,此时有两种方式可以恢复
二、恢复办法
方案一、
1.停止mongod服务(坏掉的副本的服务)
db.shutdownServer()
# 或者
mongod --shutdown
2.删除改副本下的数据
3.启动mongod服务
说明:
启动mongo服务后,新的副本集成员会自动同步主成员的数据,但是同步期间会占用较大的内存,所以这时候要保证足够的内存,不然可能会再次宕机
方案二、
1.停止mongod服务(坏掉的副本的服务)
2.将主节点的数据(或者最新的副本数据)同步到当前节点的数据目录下
3.启动mongod服务
说明:
这种方法同步很快,但一般不会成功,因为这种方法的前提就是数据不会有任何变动,如果可以停服,那么可以采用这种方法