MongoDB 集群节点 RECOVERYING 状态解决办法
来源:互联网 发布:C语言韩信点兵 编辑:程序博客网 时间:2024/06/14 08:07
问题描述
公司项目搭建的mongodb集群,前几天发现有好几次访问异常。
一个分片的primary节点服务总是down掉,后来经过仔细排查,发现原来是该集群内的副本节点状态一直是”RECOVERYING”的。
日志如下:
原因分析
主要信息:
We are too stale to use 10.171.30.102:27021 as a sync source. Blacklisting this sync source because our last fetched timestamp: 59cffaca:4df is before their earliest timestamp: 59f4f4fd:ae for 1min until: 2017-11-09T21:11:18.330+0800
大意是本节点的最后时间戳比同步目标最早的时间戳还要早一分钟,我们这个节点太”陈旧”了;也就是由于一些原因太久没有进行同步数据操作,而导致其他节点的数据操作日志已经覆盖,所以本节点被认为是太陈旧了,无法从其他节点同步数据。
Our newest OpTime : { ts: Timestamp 1506802378000|1247, t: 11 }
Earliest OpTime available is { ts: Timestamp 1509225725000|174, t: 12 }
我们最新的操作日志时间:{ ts: Timestamp 1506802378000|1247, t: 11 },于我们有效的最早的操作日志的时间是: { ts: Timestamp 1509225725000|174, t: 12 }
解决方案
See http://dochub.mongodb.org/core/resyncingaverystalereplicasetmember
通过阅读上面给出的链接文章内容,发现解决方案也不难:
主要一点记住,同步数据时候一定选在系统访问量最低的时间段进行。这样防止数据大量更新滞后,另一方面由于同步数据比较耗费资源的,降低系统down的风险。
第一种:自动同步(推荐)
1.停掉”stale”节点mongo服务。
2.清空该节点下的数据文件夹下的数据文件。
3.启动mongo服务。
第二种:从其他成员同步数据
将其他节点的数据文件拷贝到”stale”节点数据文件夹下。
- MongoDB 集群节点 RECOVERYING 状态解决办法
- mongodb集群主从节点转移
- Mongodb集群节点故障恢复场景分析
- Mongodb集群节点故障恢复场景分析
- 一、mongodb集群管理增删节点
- MongoDB集群搭建+节点测试+配置详细
- Mongodb集群节点故障恢复场景分析
- MongoDB集群状态查看与重新配置
- mongodb多节点部署 分片部署 分片集群
- 搭建高可用mongodb shard 集群以及多节点备份
- MONGODB 集群架构 调整,增加延迟备份节点服务器,删除仲裁节点
- 二.mongodb集群之win7环境下模拟多节点主从集群的添加、删除、管理
- spark主节点Master挂掉后,备用节点(standby)如何恢复集群状态
- MongoDB集群
- mongodb集群
- MongoDb集群
- MongoDB集群
- MongoDB集群
- 谷歌浏览器新标签页(新开空白标签页)上不能使用手势的解决方法
- 初次探索web
- caffe cudnnSetConvolution2dDescriptor error: too few arguments in function call
- BeanUtils组件和DbUtils组件的使用
- Go基础编程:包
- MongoDB 集群节点 RECOVERYING 状态解决办法
- 集合List和ArrayList等实现类的底层原理分析
- jquery获取标签名称
- SQL注入
- linux 安装 memcached
- Netty(三)文件上传下载、心跳检测
- HDU
- Ubuntu Kylin 16.04安装后要做的一些事情
- 51nod 1276 岛屿的数量 神奇做法