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
.