前言

某台CentOS服务器上的MongoDB服务突然停止运行,于是登上去排查原因,接下来就是苦逼的爬坑之旅。

爬坑记录

1、重启服务

使用systemctl命令重启服务:

systemctl restart mongod.service

查看系统日志:

journalctl -ex

只是提示启动失败,没有输出任何错误原因:

f19e9cd64cba3697adbf5bd5f2072eba.png

2、查看日志文件

于是准备查看MongoDB的日志,看看是否有错误信息。

但是发现日志文件较大,于是将原始log文件重命名,想在干净的日志中查看:

mv mongod.log mongod.log_old

没想到,这里给自己挖了个大坑!

再次重启服务,还是理所当然的启动失败了。

有条不紊地去查看日志,自以为马上可以找到原因了。结果,发现没有写任何日志,mongod.log文件大小为0

b6244677c696bd1a6fbd4f06a0157b0a.png

换成使用mongod命令运行,效果也是一样:

mongod -f ./mongod.conf

3、曙光乍现

由于没有日志,不知问题在哪,完全没有头绪如何修复。

突然想到,mongod.log文件大小为0!!! 那是不是说明mongod.log文件写不进去啊。

但是该文件是mongod自动创建的,应该有访问权限。

赶快使用mongod命令行参数运行,不写日志文件,直接将日志输出到屏幕:

mongod --dbpath xxx

看到这句输出,一切真相大白:

610cb4671ba6d8002ac90fbda84c5ab4.png

没有磁盘空间了?!

赶快查看磁盘剩余空间:

df -h

确实是0:

7bad1a163a8cbe5f6408f510b6acbf1e.png

1d85570bb82aa9bce47e485062891aff.png

结论

找到问题原因,解决方案当然很简单了。

回顾整个过程,由于MongoDB的数据存储是挂接专门的磁盘,所以系统运行不受影响,关键是系统日志也没任何相关提示,导致开始时忽略了这一问题。

如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐