萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux yum/rpm 資料庫損毀修復:Fatal error, run database recovery 解決方法

yum 操作中斷(如網路不穩、進程被 kill)導致 rpm 資料庫 (Berkeley DB) 損毀,報錯 db3 error(-30974) ... DB_RUNRECOVERY: Fatal error, run database recovery。本文提供標準修復流程。

錯誤現象

yum clean all
rpmdb: Thread/process ... 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
error: cannot open Packages database in /var/lib/rpm

修復步驟

rm -f /var/lib/rpm/__db*    # 刪除 Berkeley DB 環境鎖定檔
rpm --rebuilddb             # 重建 rpm 資料庫索引
yum clean all               # 清理 yum 快取並驗證恢復正常

原理說明

  • __db* 為 Berkeley DB 的環境檔(鎖、日誌等),損毀時刪除讓 rpm 重建。
  • rpm --rebuilddb 重掃 /var/lib/rpm/Packages 重建索引。

預防建議

  • 避免在 yum 交易中強制中斷進程。
  • 定期備份 /var/lib/rpm 目錄。
  • 生產環境建議使用 yum-plugin-fs-snapshot 配合 LVM 快照。

copyright © 萬盛學電腦網 all rights reserved