现象:

机房反馈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. Matlab小波工具箱的使用2

    Matlab小波工具箱的使用2 (2011-11-11 09:32:57) 转载▼ http://blog.sina.com.cn/s/blog_6163bdeb0102dw7a.html#cmt_5 ...

  2. DAX和Power BI中的参考日期表

    本文使用Power BI模板描述DAX中的引用Date表,可以在Analysis Services模型中使用相同的技术.在Dax Date Template页面下载最新版本的模板. 为什么引用Date ...

  3. 利用python执行shell脚本 并动态传参 及subprocess基本使用

    最近工作需求中 有遇到这个情况  在web端获取配置文件内容 及 往shell 脚本中动态传入参数 执行shell脚本这个有多种方法   最后还是选择了subprocess这个python标准库 su ...

  4. 【论文阅读】Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks

    Wing Loss for Robust Facial Landmark Localisation with Convolutional Neural Networks 参考 1. 人脸关键点: 2. ...

  5. ReentrantLock+线程池+同步+线程锁

    1.并发编程三要素? 1)原子性 原子性指的是一个或者多个操作,要么全部执行并且在执行的过程中不被其他操作打断,要么就全部都不执行. 2)可见性 可见性指多个线程操作一个共享变量时,其中一个线程对变量 ...

  6. 论文笔记——An online EEG-based brain-computer interface for controlling hand grasp using an adaptive probabilistic neural network(10年被引用66次)

    题目:利用自适应概率网络设计一种在线脑机接口楼方法控制手部抓握 概要:这篇文章提出了一种新的脑机接口方法,控制手部,系列手部抓握动作和张开在虚拟现实环境中.这篇文章希望在现实生活中利用脑机接口技术控制 ...

  7. ECDSA host key for 192.168.0.101 has changed and you have requested strict checking.

    原文地址:http://blog.csdn.net/ausboyue/article/details/52775281 Linux SSH命令错误:ECDSA host key "ip地址& ...

  8. 测试那些事儿—软测必备的Linux知识(三)

    ubantu 打开命令提示符的方法:点击左上角图标输入terminal 1.系统管理 1.1 shutdown,系统关机命令 -h:关机        -r:重启 shutdown -h now 立即 ...

  9. 修改hots指向

    C:\Windows\System32\drivers\etc hots文件 IP 服务器名称

  10. python基础(五)

    一.os模块 import os# os.rename(old,new)#重命名# os.remove(f)#删除文件 # os.mkdir('china/beijing') #创建文件夹# os.m ...