前言
某台CentOS服务器上的MongoDB服务突然停止运行,于是登上去排查原因,接下来就是苦逼的爬坑之旅。
爬坑记录
1、重启服务
使用systemctl命令重启服务:
systemctl restart mongod.service
查看系统日志:
journalctl -ex
只是提示启动失败,没有输出任何错误原因:
2、查看日志文件
于是准备查看MongoDB的日志,看看是否有错误信息。
但是发现日志文件较大,于是将原始log文件重命名,想在干净的日志中查看:
mv mongod.log mongod.log_old
没想到,这里给自己挖了个大坑!
再次重启服务,还是理所当然的启动失败了。
有条不紊地去查看日志,自以为马上可以找到原因了。结果,发现没有写任何日志,mongod.log文件大小为0。
换成使用mongod命令运行,效果也是一样:
mongod -f ./mongod.conf
3、曙光乍现
由于没有日志,不知问题在哪,完全没有头绪如何修复。
突然想到,mongod.log文件大小为0!!! 那是不是说明mongod.log文件写不进去啊。
但是该文件是mongod自动创建的,应该有访问权限。
赶快使用mongod命令行参数运行,不写日志文件,直接将日志输出到屏幕:
mongod --dbpath xxx
看到这句输出,一切真相大白:
没有磁盘空间了?!
赶快查看磁盘剩余空间:
df -h
确实是0:
结论
找到问题原因,解决方案当然很简单了。
回顾整个过程,由于MongoDB的数据存储是挂接专门的磁盘,所以系统运行不受影响,关键是系统日志也没任何相关提示,导致开始时忽略了这一问题。
如果你觉得这篇文章对你有所启发,请关注我的个人公众号”My IO“