Red Hat - Berkeley DB 库 - 损坏的 DB

Red Hat - Berkeley DB 库 - 损坏的 DB

执行 yum 或 rpm 命令时出现以下错误。

错误:rpmdb:BDB0113 线程/进程 22448/139817567954752 失败:BDB1507 线程在 Berkeley DB 库中死亡 错误:db5 错误(-30973)来自 dbenv->failchk:BDB0087 DB_RUNRECOVERY:致命错误,运行数据库恢复 错误:无法使用 db5 打开软件包索引 - (-30973) 错误:无法在 /var/lib/rpm 中打开软件包数据库 CRITICAL:yum.main:错误:rpmdb 打开失败

我相信这是因为 RPM DB 损坏而发生的。我曾尝试在重建 RPM 数据库后执行 yum 或 rpm 命令。当时,它运行正常。但几天后,同样的错误再次出现

让我知道如何永久地解决这个问题。

提前致谢,

答案1

您应该删除旧的损坏的 RPM 数据库并重建 RPM 数据库。您可以通过运行以下命令执行这些操作:

rm -f /var/lib/rpm/__db*
rpmdb --rebuilddb

请注意,此问题通常是由中断软件包安装、更新或删除引起的。您应确保此类操作不会被用户中断,并且您的系统具有适当的备用电源(例如 UPS),以防止电源故障导致问题。

答案2

您可以使用以下命令删除损坏的 RPM 数据库并重建。
首先,请进行备份以防万一:

mkdir /tmp/rpm-backup
cp -a /var/lib/rpm/__db* /tmp/rpm-backup/

删除旧数据库:

rm -fv /var/lib/rpm/__db.[0-9]*

清理并重建 rpm 数据库:

rpm --quiet -qa
rpm --rebuilddb
yum clean all

由于数据库经常由于包安装中断或失败而损坏,您可能还需要运行:

rm -rf /var/cache/yum

上述操作将释放孤立更新所占用的所有空间。

相关内容