现象:

机房反馈9点左右,机房交换机故障,导致网络出现问题

业务人员反馈某个接口超时

初查:通过业务日志查看分析发现,在连接mongo的某个collections时候,报错错误如下:

在写入数据的时候报错:

Mongo::Error::OperationFailure - no progress was made executing batch write op in jdb3.images after  rounds ( ops completed in  rounds total) ():

因此初步确定问题出在mongo分片集群上

进入mongos节点,进行findOne操作,提示如下:

"errmsg" : "None of the hosts for replica set configReplSet could be contacted."

查看shard信息:

--- Sharding Status ---
sharding version: {
"_id" : ,
"minCompatibleVersion" : ,
"currentVersion" : ,
"clusterId" : ObjectId("58c99a8257905f85f1828f52")
}
shards:
{ "_id" : "shard01", "host" : "shard01/100.106.23.22:27017,100.106.23.32:27017,100.111.9.19:27017" }
{ "_id" : "shard02", "host" : "shard02/100.106.23.23:27017,100.106.23.33:27017,100.111.9.20:27017" }
{ "_id" : "shard03", "host" : "shard03/100.106.23.24:27017,100.106.23.34:27017,100.111.17.3:27017" }
{ "_id" : "shard04", "host" : "shard04/100.106.23.25:27017,100.106.23.35:27017,100.111.17.4:27017" }
active mongoses:
"3.2.7" :
balancer:
Currently enabled: yes
Currently running: no
Balancer active window is set between : and : server local time
Failed balancer rounds in last attempts:
Migration Results for the last hours:
: Success
databases:
{ "_id" : "jdb3", "primary" : "shard01", "partitioned" : true }
jdb3.images
shard key: { "uuid" : }
unique: false
balancing: true
chunks:
shard01
shard02
shard03
shard04
too many chunks to print, use verbose if you want to force print
{ "_id" : "gongan", "primary" : "shard02", "partitioned" : true }
{ "_id" : "tmp", "primary" : "shard03", "partitioned" : false }
{ "_id" : "1_n", "primary" : "shard04", "partitioned" : true }
{ "_id" : "upload", "primary" : "shard04", "partitioned" : true }
upload.images
shard key: { "uuid" : }
unique: false
balancing: true
chunks:
shard01
shard02
shard03
shard04
too many chunks to print, use verbose if you want to force print
{ "_id" : "test", "primary" : "shard03", "partitioned" : false }

没有发现异常,然后挨个检查shard节点日志

发现在shard4节点的100.106.23.25副本上,找不到master,然后在shard4的master上查看错误日志

100.106.23.25日志报错信息:

--10T11::53.546+ W SHARDING [replSetDistLockPinger] pinging failed for distributed lock pinger :: caused by :: ReplicaSetNotFound: None of the hosts for replica set configReplSet could be contacted.

master100.106.23.35日志报错信息:

--10T09::02.282+ W SHARDING [conn7204619] could not remotely refresh metadata for jdb3.images :: caused by :: None of the hosts for replica set configReplSet could be contacted.

并且在35服务器上进行查询的时候,跟在mongos上查询报的错误是一样的:

"errmsg" : "None of the hosts for replica set configReplSet could be contacted."

定位问题:

在其他shard1-3上查询一条数据,然后通过索引在mongos节点进行查询,均可查询到数据,从shard04节点上查询到的所有信息,在mongos上均报错,

解决:重启slave,25,观察日志,已经没有了报错,

   重启master,35服务器,报错消失了,并且查看状态,master已经切换到了25服务器上,

业务反馈,故障已经解决。

疑点:

1、网络问题导致,为何在网络恢复后,还是报如下错误:

--10T11::53.546+ W SHARDING [replSetDistLockPinger] pinging failed for distributed lock pinger :: caused by :: ReplicaSetNotFound: None of the hosts for replica set configReplSet could be contacted.

难道mongo shard连接mongos用的是长连接么?

有知道的大神欢迎告知!万分感谢

记录一次mongodb因网络问题导致shard节点异常的更多相关文章

  1. SQLServer 2012之AlwaysOn —— 指定数据同步链路,消除网络抖动导致的提交延迟问题

    事件起因:近期有研发反应,某数据库从08切换到12环境后,不定期出现写操作提交延迟的问题: 事件分析:在排除了系统资源争用等问题后,初步分析可能由于网络抖动导致同步模式alwayson节点经常出现会话 ...

  2. 记录一次配置unix网络编程环境的过程和遇到的问题

    记录一次搭建unix网络编程环境过程中遇到的问题和总结 计算机环境虚拟机 linuxmint-18-xfce-64bit 1.打开unix网络编程.iso 把目录下的文件复制到某一目录,修改权限,可命 ...

  3. CentOS IP丢失,切换了网络连接导致的vmnet8未启用dhcp

    解决了, 这个问题是我在开启虚拟机ubuntu系统的过程中, 在主机win7上切换了网络连接导致的, 就是刚开始我用的无线宽带上网, 此时开启了ubuntu ,然后使用过程中,我在win7上切换回静态 ...

  4. 网络原因导致的 spring cloud config 读取git上的配置文件时报错:Cannot clone or checkout repository

    今天在公司使用spring cloud config搭建配置中心的时候,出现了读取不到git库的问题:Cannot clone or checkout repository.在网上百度,前面几个答案都 ...

  5. 记一次网络原因导致的mysql连接中断问题(druid)

    date: 2018-04-19 21:00 tag: java,mysql,exception,mat,调试,jvm 工具: gceasy.io, MAT 线上系统出现一个诡异的bug,通过heap ...

  6. mongodb因非法关闭导致无法启动的解决方案

    mongodb因非法关闭导致无法启动的解决方案 1.删除数据库目录的.lock文件 2.输入命令 mongod --repair 3.重启

  7. 记录一个奇葩的问题:k8s集群中master节点上部署一个单节点的nacos,导致master节点状态不在线

    情况详细描述; k8s集群,一台master,两台worker 在master节点上部署一个单节点的nacos,导致master节点状态不在线(不论是否修改nacos的默认端口号都会导致master节 ...

  8. mongodb副本集(选举,节点设置,读写分离设置)

    1.相对于传统主从模式的优势 传统的主从模式,需要手工指定集群中的Master.如果Master发生故障,一般都是人工介入,指定新的Master.这个过程对于应用一般不是透明的,往往伴随着应用重新修改 ...

  9. Oracle 监听器日志文件过大导致监听异常

    Oracle 监听器日志文件过大导致监听异常 db版本:11.2.0.1 os版本:windows2008 现象: 应用异常,无法连接数据库.登陆数据库服务器,查看监听已经断掉.尝试重启监听,重启失败 ...

随机推荐

  1. 在过去五分钟内,TypeScript语言服务以外终止了5次

    这个问题困扰了我两次...第一次重装了VS CODE 具体的原意找到之后我直接想骂娘....... 各位如果碰到这个问题....请打开你的360安全卫士!!! 注意看看您家360的防护日志有木有贴心帮 ...

  2. 石头的Xcode学习列表

    http://www.cnblogs.com/JangoJing/tag/xcode/

  3. 一个简单的java程序,用于RabbitMQ日志监控

    RabbitMQ的所有日志,都会发给topic类型的exchange “amq.rabbitmq.log”  routingKey 有 debug,info,waring,error.  如果接收所有 ...

  4. beifen

    Comparison of Models for Predicting the Outcome of Craniocerebral Injury by Using Machine Learning   ...

  5. 从输入URL按下回车到页面展现,中间发生了什么?

    从输入URL按下回车到页面展现,总的来说发生了一下几个过程: DNS 解析:将域名解析成 IP 地址 TCP 连接:TCP 三次握手 发送 HTTP 请求 服务器处理请求并返回 HTTP 报文 浏览器 ...

  6. git教程:删除文件

    在Git中,删除也是一个修改操作,我们实战一下,先添加一个新文件test.txt到Git并且提交: $ git add test.txt $ git commit -m "add test. ...

  7. c#中的Cache缓存技术

    1.HttpRuntime.Cache 相当于就是一个缓存具体实现类,这个类虽然被放在了 System.Web 命名空间下了.但是非 Web 应用也是可以拿来用的. 2.HttpContext.Cac ...

  8. exp迁移测试库10.2.0.5

    目的: 将一套10.2.0.5的UP-UNIX系统的数据,迁移到一台Windows环境下. 迁移方案:由于不同的操作系统,为了方便迁移,只是测试,使用EXP/IMP方式. 迁移流程: 一.源端导出 1 ...

  9. linux rar文件解压命令

    解压命令: unrar x demo.rar

  10. app内嵌vue h5,安卓和ios拦截H5点击事件

    安卓和ios拦截h5点击事件,这个函数事件必须是暴漏在window下的 安卓和ios拦截普通h5函数: <div onclick = "show(),window.android.sh ...