mongodb集群shard状态异常:RECOVERING
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,mongodb集群shard状态异常:RECOVERING报错信息2018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too
千家信息网最后更新 2025年12月01日mongodb集群shard状态异常:RECOVERING
mongodb集群shard状态异常:RECOVERING
报错信息
2018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too stale to use 172.19.9.12:27003 as a sync source. Blacklisting this sync source because our last fetched timestamp: Timestamp(1542344943, 1) is before their earliest timestamp: Timestamp(1543387334, 5197) for 1min until: 2018-11-28T06:47:55.783+00002018-11-28T06:46:55.783+0000 I REPL [replication-0] sync source candidate: 172.19.9.11:270032018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too stale to use 172.19.9.11:27003 as a sync source. Blacklisting this sync source because our last fetched timestamp: Timestamp(1542344943, 1) is before their earliest timestamp: Timestamp(1543387334, 5953) for 1min until: 2018-11-28T06:47:55.783+0000错误原因分析:
报错节点数据太"陈旧:stale"了;网络异常或者节点异常,太久没有进行同步数据操作,而导致其他节点的数据操作日志已经覆盖,所以本节点被认为 stale,无法从其他节点同步数据。
恢复方案
1:停掉数据库,直接删除异常节点(shard)本地数据,然后启动mongo数据库,启动之后存在一个同步的过程,根据数据量、网络、磁盘性能等因素所需时间不同。
2:停掉数据库,直接拷贝主节点上的数据,然后再启动mongo,这样就不存在数据同步的过程了.问题,就是数据时刻在变化,拷贝过程中难免会漏掉一些数据。
处理办法:
我们的mongodb集群是使用docker拉起的,使用方案 1;
首先确定异常分片节点==》然后确定映射目录==》删除异常分片实例数据目录==》docker 服务会自动拉起服务==》集群开始数据恢复;
确认异常信息:
/mongo localhost:27017/admin:PRIMARY> rs.status(); { "_id" : 2, "name" : "172.19.9.13:27003", 《== 节点信息 "health" : 1, "state" : 5, "stateStr" : "RECOVERING", 《== 异常状态 "uptime" : 64, "optime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) },具体操作:
数据目录:/data/shard3 ssh $HOSTNAME cd /data/ rm -rf shard3 删除数据目录后,容器异常,集群会自动拉起新的一个docker 实例运行 shard 3实例;
查看恢复状态:
STARTUP2表示正在初始化并同步数据,会看到数据目录文件在不停增加文件。
/mongo localhost:27017/admin:PRIMARY> rs.status(); { "_id" : 2, "name" : "172.19.9.13:27003", "health" : 1, "state" : 5, "stateStr" : "STARTUP2", 《===表示正在初始化并同步数据。 "uptime" : 64, "optime" : { "ts" : Timestamp(0, 0), "t" : NumberLong(-1) },查看恢复结果
/mongo localhost:27017/admin:PRIMARY> rs.status(); "_id" : 2, "name" : "172.19.9.13:27003", "health" : 1, "state" : 2, "stateStr" : "SECONDARY", <== 一段时间后状态恢复正常 "uptime" : 945196, "optime" : { "ts" : Timestamp(1543401694, 1), "t" : NumberLong(1) },注意事项:
同步数据时候比较耗费资源,推荐在系统访问量最低的时间段进行。防止数据大量更新滞后,降低集群数据恢复风险。
数据
节点
同步
集群
目录
状态
信息
实例
数据库
时间
过程
拷贝
数据恢复
文件
方案
正在
网络
服务
不同
最低
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
方舟进化生存手游如何开服务器
把网站数据下载到远程服务器
ebsco 数据库
南沙区无源网络技术开发推荐厂家
安徽冠格网络技术有限公司
西安立云体网络技术有限公司
增城专业的网络安全运维
数据库原理与技术A卷
云服务器爆款产品
针对软件开发项目拒绝付尾款
服务器内存不足如何扩展
拓客联盟网络技术
银行网络安全制度报告
软件开发财务预算表
erp软件开发商和供应商
海淀区信息网络技术服务好处
dgv数据库说明
荒野行动连接不了服务器怎么办
数据库面试java
qq删除记录怎么导出数据库
查询数据库表中记录为空值
中国网络技术有限公司官网
java数据库分布式事务
国资网络安全股
家庭组建局域网用什么服务器
mysql恢复数据库
亿家互联网科技有限公司
误删数据库如何恢
电脑桌面数据库管理系统
收费站网络安全案例