mongodb集群shard状态异常:RECOVERING
发表于:2024-09-23 作者:千家信息网编辑
千家信息网最后更新 2024年09月23日,mongodb集群shard状态异常:RECOVERING报错信息2018-11-28T06:46:55.783+0000 I REPL [replication-0] We are too
千家信息网最后更新 2024年09月23日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安全错误
数据库的锁怎样保障安全
捷之捷网络技术
风险研判依据网络安全
晴天互娱网络技术有限公司
银行软件开发科室选择
修改数据库密码口令
云服务器ecs有显卡吗
软件开发的标题
数据库api网关
柏伦网络技术
中华人民共和国网络安全知识
两会网络安全值班方案
校园超市管理系统数据库
wetool云端服务器
如何制作网络安全手抄报图片
我和网络安全的手抄报
oracle数据库用户
靖江小型网络技术大概费用
阿里软件开发总裁
应该学什么软件开发
10年前的惠普服务器值多少钱
软件开发需掌握的英语单词
关于互联网的科技性的视频
软件开发流程 搞笑
我的世界服务器创始人布莱恩
吉林网络软件开发商家
数据库所在盘符满了
德州软件开发方案
人渣服务器建家
市县的大数据库是做什么的
重庆家庭教育与网络安全