记一次rsyslog 引发的Structure needs cleaning问题处理
记一次rsyslog 引发的Structure needs cleaning问题处理
问题回顾:
开发人员在本地服务器上pull代码的时候页面显示 Structure needs cleaning 已部署的系统中数据库无法打开。
排查过程:
查阅系统日志发现是 rsyslog 报错 imjournal: fopen() failed for path: ‘/var/lib/rsyslog/imjournal.state.tmp’: Structure needs cleaning [v8.24.0-57.el7_9.1 try http://www.rsyslog.com/e/2013 ]
查看服务状态
systemctl status rsyslog
尝试重启服务
systemctl restart rsyslog
尝试重启系统,重启后未解决
必应搜索相关问题给出的结果均是需要重新挂载目录,查看了目录所在分区为根目录,无法重新挂载
尝试重装rsyslog
# 删除/var/log/messages文件
rm -rf /var/log/messages
# 重装rsyslog
yum reinstall rsyslog
此处出现问题,提示rpmdb open failed
删除原rpm db 文件
rm -f /var/lib/rpm/__db*
重建rpm数据库
rpm --rebuilddb
清除所有yum的缓存
yum clean all
重新安装rsyslog
安装后重启rsyslog,此时之前的报错已解决
重启系统,数据库自动启动,至此问题全部解决。
参考资料: