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 命令時, 正常.