千家信息网

mongodb集群shard状态异常:RECOVERING

发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,mongodb集群shard状态异常:RECOVERING报错信息2018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too
千家信息网最后更新 2026年11月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安全错误 数据库的锁怎样保障安全 互联网科技海报 伟宏互联网科技 科技金融是不是互联网金融 互联网下的科技发展 金融科技与互联网金融 狮子座互联网科技 百单互联网科技有限公司 广西互联网科技公司 济南和联互联网科技有限公司 剑昆互联网络科技有限公司临桂 贵州叶脉互联网科技有限公司所属行业 广州市恰铎互联网科技有限公司 深圳育鹏互联网科技有限公司招聘 迪庆互联网科技招生 科技互联网的核心竞争力 每天都有哪些好的互联网科技 互联网科技包装股份有限公司上市 青岛易易互联网科技 广东猫王互联网科技有限公司电话 宁波允成互联网科技有限公司 互联网新科技 亿人帮互联网科技有限公司 关于新基建和互联网科技 互联网科技公司需要的职位 语蝶互联网科技有限公司 互联网科技圈年度人物 杭州披云加互联网科技有限公司 互联网科技企业商标注意事项 互联网公司属于科技吗 众联互联网络科技
0