執行 yum 指令時出現 rpmdb: Thread/process ... failed: Thread died in Berkeley DB library、error: db3 error(-30974) from dbenv->failchk: DB_RUNRECOVERY: Fatal error, run database recovery,表示 RPM 資料庫(Berkeley DB)因進程異常中斷(如 yum upgrade 被 kill、網路中斷、電源中斷)導致損毀。修復僅需三條指令。

[root@localhost byrd]# yum clean all
rpmdb: Thread/process 17911/140557035468544 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:
# 1. 刪除損毀的 Berkeley DB 環境檔案(__db.001, __db.002, lock 等)
rm -f /var/lib/rpm/__db*
# 2. 重建 RPM 資料庫索引
rpm --rebuilddb
# 3. 清理 yum 快取並驗證
yum clean all
/var/lib/rpm/__db* 是 Berkeley DB 的共享記憶體環境檔案,進程異常退出時未正常關閉,導致鎖殘留、校驗和失效。rpm --rebuilddb 會掃描 /var/lib/rpm/Packages 主資料庫,重新建立所有索引(Name、Provides、Requires 等),並產生乾淨的 __db* 環境檔。Packages 檔中)。yum 交易進行中強制 kill -9 或斷電。/var/lib/rpm 目錄(如每日 tar czf rpmdb_$(date +%F).tar.gz /var/lib/rpm)。yum-cron 自動更新,而非手動長時間運行 yum upgrade。遇到此錯誤無需驚慌,三條指令即可讓 yum 重獲新生。
Ubuntu 12.04 升級後 IBus 輸入法圖示消失的兩種解決方法
Linux cal 命令完整指南:查看日曆、指定月份年份、多月顯示與腳本應用
Apache HTTP Server 與 Tomcat 應用伺服器:定位差異、整合優勢與獨立運作模式
Ubuntu 安裝 ITDB 資產管理系統完整步驟:Apache + PHP + SQLite3 環境部署
Linux Shell 變量參數 $ 完整解析:$0-$9、$#、$@、$*、$$、$? 含義與實戰
Linux 使用 arping 命令檢測 IP 地址衝突完整指南