Linux下修复rpmdb报错一例

背景:Centos7.4测试环境,执行yum相关命令报错。

1、不论是yum upgrade,或者yum list,yum clean all,都是一样报错

[root@Centos7 ~]# yum upgrade
error: rpmdb: BDB0113 Thread/process 33958/139778512189248 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

[root@Centos7 ~]# yum list
error: rpmdb: BDB0113 Thread/process 33958/139778512189248 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、初步判断是rpmdb有损坏,需要进行修复,但是没法得知哪个损坏,哪个没有,所以把rpm目录都备份。

[root@Centos7 ~]# cp -avr /var/lib/rpm /root/rpm_backup
‘/var/lib/rpm’ -> ‘/root/rpm_backup’
‘/var/lib/rpm/.dbenv.lock’ -> ‘/root/rpm_backup/.dbenv.lock’
‘/var/lib/rpm/Packages’ -> ‘/root/rpm_backup/Packages’
‘/var/lib/rpm/Name’ -> ‘/root/rpm_backup/Name’
‘/var/lib/rpm/Basenames’ -> ‘/root/rpm_backup/Basenames’
‘/var/lib/rpm/Group’ -> ‘/root/rpm_backup/Group’
‘/var/lib/rpm/Requirename’ -> ‘/root/rpm_backup/Requirename’
‘/var/lib/rpm/Providename’ -> ‘/root/rpm_backup/Providename’
‘/var/lib/rpm/Conflictname’ -> ‘/root/rpm_backup/Conflictname’
‘/var/lib/rpm/Obsoletename’ -> ‘/root/rpm_backup/Obsoletename’
‘/var/lib/rpm/Triggername’ -> ‘/root/rpm_backup/Triggername’
‘/var/lib/rpm/Dirnames’ -> ‘/root/rpm_backup/Dirnames’
‘/var/lib/rpm/Installtid’ -> ‘/root/rpm_backup/Installtid’
‘/var/lib/rpm/Sigmd5’ -> ‘/root/rpm_backup/Sigmd5’
‘/var/lib/rpm/Sha1header’ -> ‘/root/rpm_backup/Sha1header’
‘/var/lib/rpm/.rpm.lock’ -> ‘/root/rpm_backup/.rpm.lock’
‘/var/lib/rpm/__db.001’ -> ‘/root/rpm_backup/__db.001’
‘/var/lib/rpm/__db.002’ -> ‘/root/rpm_backup/__db.002’
‘/var/lib/rpm/__db.003’ -> ‘/root/rpm_backup/__db.003’

3、删除rpm数据库文件

[root@Centos7 rpm]# rm -f /var/lib/rpm/__db*

4、检查RPM db包

[root@Centos7 rpm]# db_verify /var/lib/rpm/Packages 
BDB5105 Verification of /var/lib/rpm/Packages succeeded.

5、重建 RPM database

[root@Centos7 rpm]# rpm --rebuilddb

6、执行yum clean重新下载repo data

[root@Centos7 rpm]# yum clean all
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
Cleaning repos: base docker-ce-stable extras updates
Cleaning up everything
Maybe you want: rm -rf /var/cache/yum, to also free up space taken by orphaned data from disabled or removed repos
Cleaning up list of fastest mirrors

7、再重新执行yum命令已经正常。

参考文档:
https://linuxadminonline.com/fix-cannot-open-packages-database-var-lib-rpm/

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值