执行rpm安装命令的时候抛出异常:rpmdb BDB0113 Thread/process
1、问题现象
[root@localhost ~]# rpm -qa |grep sangfor
错误:rpmdb: BDB0113 Thread/process 626018/281460228524928 failed: BDB1507 Thread died in Berkeley DB library
错误:db5 错误(-30973) 源自 dbenv->failchk:BDB0087 DB_RUNRECOVERY: Fatal error, run database recovery
错误:cannot open Packages index using db5 - (-30973)
错误:无法从 /var/lib/rpm 打开软件包数据库
[root@localhost ~]#
[root@localhost ~]# rpm -qa |grep sangfor
error: rpmdb: BDB0113 Thread/process 3051425/281471346772864 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
[root@localhost ~]#
[root@localhost ~]# yum
error: rpmdb: BDB0113 Thread/process 3051425/281471346772864 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
Error: Error: rpmdb open failed
[root@localhost ~]#
2、问题原因
一般是因为强制删除,损坏了rpm数据库,只需要重新去构建rpm数据库即可
3、解决方法
# 删除数据库文件 __db
[root@localhost ~]# rm -rf /var/lib/rpm/__db*
# 重建rpm数据库
[root@localhost ~]# rpm --rebuilddb
4、查看rpm命令是否恢复正常
然后再执行rpm就恢复了正常,rpm损坏的同时,yum命令也是会抛出相同的异常,所以也需要验证下,yum是否正常
5、查看yum命令是否恢复正常
[root@localhost ~]# yum repolist
[root@localhost ~]# yum clean all
6、或者执行此行
mv /var/lib/rpm/__db.00* /tmp/ && yum clean all