yum 安装更新提示 rpmdb: Thread/process failed: Thread died in Berkeley DB library
在站群服务器 (centos 系统) 上使用 yum/rpm 时的一个报错, 如下:
#yum install -y wget
rpmdb: Thread/process 5542/139697184122624 failed:Thread died in Berkeley DB library
error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery
error: cannot open Packages index using db3 – (-30974)
error: cannot open Packages database in /var/lib/rpm
CRITICAL:yum.main:
 
对于cpanel使用者, 相应遇到相关的错误, 如WHM>>Restart Services 重启任何服务, 均会报以下错误:

还有 cpanel 切换 PHP 版本 (select PHP version):

以上情况, 均因为 RPM 资料库出现损坏导致. 它导致所有的站群软件的升级、安装甚至删除都会出现问题.
网上检视, 一共有以下几种方法:
<1>备份>>重建 RPM 库
su  – root
cd /var/lib/rpm/
for i in ‘ls | grep ‘db.”;do mv $i $i.bak;done #做一下备份
rpm –rebuilddb #重建该资料库(rebuild the database indices from the installed package headers)
yum clean all
注意区别:–rebuilddb:重建已经安装的 RPM 资料库 ,–initdb:建立一个新的 RPM 资料库
 
<2>暴力删除, 然后 update(常见)
rm -rf /var/lib/rpm/_db.*
yum update
 
<3>备份站群服务器恢复备份 (个人)
因为本人管理的站群服务器存在备份, 所以做了以下操作:
cd /var/lib/
mv rpm rpmold
通过备份站群服务器恢复了 rpm 目录资料 (恢复资料时间依个人而定), 再次执行 yum 命令时, 正常.