YUM : DB_RUNRECOVERY: Fatal error, run database recovery

Pernah mengalami kejadian lagi yum update di server trus tiba-tiba layar laptop tertutup secara tidak sengaja? Yep, koneksi ke server akan terputus dan akan menyebabkan kita kehilangan akses ke proses yum update yang sedang berlangsung. Dan karena putus asa proses yum yang tidak kunjung selesai jadi terpaksa melakukan kill -9, akibatnya kita akan mendapati masalah DB_RUNRECOVERY fatal error seperti dibawah ini :

[root@indra ~]# yum repolist
rpmdb: Thread/process 7710/140315268437760 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:

Error: rpmdb open failed

Hal yang sama juga bisa terjadi jika mengalami masalah disk I/O pada saat mengeksekusi perintah yum atau manipulasi RPM, sehingga menyebabkan database RPM corrupted.

Jika terjadi masalah seperti diatas, ada beberapa langkah mudah berikut dapat dilakukan untuk memperbaiki database RPM di server :


$ mv /var/lib/rpm/__db* /tmp/
$ rpm --rebuilddb
$ yum clean all

Selanjutnya, dapat menjalankan perintah YUM (misalnya yum repolist) untuk memastikan error tersebut sudah tidak lagi muncul. Berikut contoh hasilnya :

[root@indra ~]# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
* base: mirror.newmediaexpress.com
* epel: download.nus.edu.sg
* extras: mirror.newmediaexpress.com
* updates: mirror.newmediaexpress.com
repo id repo name status
base CentOS-6 - Base 6713
epel Extra Packages for Enterprise Linux 6 - x86_64 12541
extras CentOS-6 - Extras 46
updates CentOS-6 - Updates 465
repolist: 19765

Jika karena alasan tertentu, langkah rebuild database diatas tidak dapat menyelesaikan masalah. Anda masih bisa mengembalikan file database RPM yang lama di folder /tmp.