mongodb集群shard状态异常:RECOVERING
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了mongodb集群shard状态异常:RECOVERING,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2152字,纯文字阅读大概需要4分钟。
内容图文
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+0000
2018-11-28T06:46:55.783+0000 I REPL [replication-0] sync source candidate: 172.19.9.11:27003
2018-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)
},
注意事项:
同步数据时候比较耗费资源,推荐在系统访问量最低的时间段进行。防止数据大量更新滞后,降低集群数据恢复风险。
原文:http://blog.51cto.com/michaelkang/2323388
内容总结
以上是互联网集市为您收集整理的mongodb集群shard状态异常:RECOVERING全部内容,希望文章能够帮你解决mongodb集群shard状态异常:RECOVERING所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。