现象:

机房反馈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. Spring学习札记(一)

    写在前面:spring的两大特点:IOC与aop.IOC(Inverse of Control):控制反转,也可以称为依赖倒置.降低耦合.AOP:即面向切面编程. 从Spring的角度看,AOP最大的 ...

  2. WPF popup自动关闭

    var tileMore = new Tile { Height = , Width = , Background = , , )), Title = "更多...", }; ti ...

  3. JDK8.0接口中的默认方法和静态方法

    我们在接口中通常定义的方法是抽象方法,即没有方法体,只有返回值类型和方法名:(public abstract) void Method(); 类在实现接口的时候必须重写抽象方法才可以 jdk8中新加的 ...

  4. vue--http请求的封装--token

    export const FetchHandler = function (url,opt) { let paramStr = ''; let token = ''; for(key in opt){ ...

  5. scrapy安装问题记录

    ubuntu小白一枚,由于对于ubuntu的不了解所以导致有的问题解决不了只能白痴的重装一遍. 总结一下问题: 1.pip安装自带scrapy版本过低官方不提供维护,卸载不完全导致重装最新版不成功 # ...

  6. java同步和互斥【用具体程序说明】

    java同步和互斥[用具体程序说明]            所有对象都自动含有单一的锁,也就是所有对象都有且只有唯一的锁,所以当某个任务(线程)访问一个类A中含有sycnhronized的方法是,那么 ...

  7. navicat premium 安装破解(Mac & win)

    1.windows请参考以下连接: https://www.jianshu.com/p/5f693b4c9468 2.mac安装教程 下载:http://www.pc6.com/mac/111878. ...

  8. C#中的Cookie

    cookie属性: name字段为一个cookie的名称. value字段为一个cookie的值. domain字段为可以访问此cookie的域名. path字段为可以访问此cookie的页面路径. ...

  9. C语言权威指南和书单 - 初学者

    注:点击标题免费下载电子书 1. C Primer Plus (5th Edition) 2. A Book on C C Programming: A Modern Approach (2nd Ed ...

  10. npm install 插件 --save与 --save -dev的区别

    npm i 插件   ,会把插件安装到node_modules目录中,不会修改package.json, npm i 插件 --save  ,项目发布上线之后还会依赖用到的插件,没有这些插件,项目不能 ...