环境描述
描述项 | 内容 |
---|---|
操作系统 | CentOS Linux release 7.9.2009 (Core) |
1. 故障现象
在执行 yum clean all
时提示如下错误:
~]# yum clean all
error: rpmdb: BDB0113 Thread/process 8743/140341779429440 failed: BDB1507 Thread died in Berkeley DB library
error: db5 error(-30973) from dbenv->failchk: BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db5 - (-30973)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
Error: rpmdb open failed
2. 问题原因
这个错误提示是由于 RPM数据库 出现了问题,可能是由于系统意外关闭或磁盘空间不足等原因导致的。
参见官方网站:How to debug recurring rpm database corruption
3. 解决方案
3.1. 检查使用/var/lib/rpm的进程
~]# fuser -v /var/lib/rpm
3.2. 停止上述结果的服务或杀死进程
3.3. 清除锁定文件
~]# mv /var/lib/rpm/__db* /tmp
~]# rpm --rebuilddb
~]# yum clean all