今天早上用户突然说登录不上去了,立刻到kuboard查看日志,发现都是数据库报错。立刻蒙圈,因为数据库的架构太复杂,怕处理不了
找问题
首先查看了mongos的日志,发现最后崩溃之前的日志结尾是这么两句:
2020-11-05T01:31:05.646+0000 F - operation was interrupted because a client disconnected
2020-11-05T01:31:05.646+0000 F - [conn15] terminate() called. No exception is active
首先尝试重新启动mongodb
docker restart mongos
docker restart mc1
docker restart ms1
docker restart ms2
再次查看日志,还是一样的错误
无奈只能多吉搜索这个打印的错误,发现了一条官方论坛一样的提问,https://developer.mongodb.com/community/forums/t/mongos-service-crashed/6180
点进去,一直转圈。。。
然后转进去了,发现回答者说这个问题可能是版本太低,如果在4.2.x以下的版本会出现
查看了一下我们数据库的版本,是 4.2
立刻进行升级
解决
在部署了mongo的每个服务器上更新mongo的版本。因为是使用docker-compose部署的,所以升级方式比较简单:
-
下载最新的镜像

本文记录了一次MongoDB故障恢复的过程。由于MongoDB服务崩溃,日志显示'terminate() called. No exception is active'错误。通过官方论坛找到问题可能由低版本引起,检查发现版本为4.2.x。升级到最新版本后,问题得到解决。总结中强调了使用docker-compose简化维护以及面对类似问题时的应对策略。
最低0.47元/天 解锁文章
3万+

被折叠的 条评论
为什么被折叠?



