I’m trying to run yum update
and I’m running this error:
rpmdb: PANIC: fatal region error detected; run recovery
error: db3 error(-30974) from dbenv->open: 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
I checked page like this one but running yum clean all
runs the same error.
How can I solve this?
asked Apr 25, 2015 at 15:40
1
This is how I fixed my problem.
You may fix this by cleaning out rpm database. But first, in order to minimize the risk, make sure you create a backup of files in /var/lib/rpm/
using cp
command:
mkdir /root/backups.rpm.mm_dd_yyyy/
cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/
The try this to fix this problem:
# rm -f /var/lib/rpm/__db*
# db_verify /var/lib/rpm/Packages
# rpm --rebuilddb
# yum clean all
And finally verify that error has gone with the following yum command
# yum update
answered Apr 25, 2015 at 15:40
Alex JoligAlex Jolig
2,2193 gold badges14 silver badges19 bronze badges
7
All I had to do was to delete the two file with the «.lock» extension, and the three files that started with «__db».
# rm /var/lib/rpm/.dbenv.lock
# rm /var/lib/rpm/.rpm.lock
# rm /var/lib/rpm/__db*
After that, yum update
worked.
answered Jan 17, 2019 at 19:00
isapirisapir
3983 silver badges11 bronze badges
Thanks Alex, your answer worked for me apart from one slight change I had to make.
rm -f /var/lib/rpm/__db*
returned errors
rm: cannot remove `/var/lib/rpm/__db.001': Is a directory
rm: cannot remove `/var/lib/rpm/__db.002': Is a directory
rm: cannot remove `/var/lib/rpm/__db.004': Is a directory
so I had to recurse with
rm -rf /var/lib/rpm/__db*
answered Jun 6, 2015 at 20:18
1
I tried the above one it did’nt work
below works fine
# cd /var/lib
# tar -zcvf /var/preserve/rpmdb-$(date +%Y-%m-%d_%H-%M-%S).tar.gz rpm
Note: This tar backup can be used if the attempt to recover the RPM database has issues.
Verify integrity of the Packages file:
# cd /var/lib/rpm
# rm -f __db* # to avoid stale locks
# /usr/lib/rpm/rpmdb_verify Packages
# mv Packages Packages.orig
# /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages
# rpm -vv --rebuilddb
Once again verify RPM database:
# cd /var/lib/rpm
# /usr/lib/rpm/rpmdb_verify Packages
answered Apr 16, 2018 at 7:30
AReddyAReddy
3,0545 gold badges34 silver badges70 bronze badges
2
I’m trying to run yum update
and I’m running this error:
rpmdb: PANIC: fatal region error detected; run recovery
error: db3 error(-30974) from dbenv->open: 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
I checked page like this one but running yum clean all
runs the same error.
How can I solve this?
asked Apr 25, 2015 at 15:40
1
This is how I fixed my problem.
You may fix this by cleaning out rpm database. But first, in order to minimize the risk, make sure you create a backup of files in /var/lib/rpm/
using cp
command:
mkdir /root/backups.rpm.mm_dd_yyyy/
cp -avr /var/lib/rpm/ /root/backups.rpm.mm_dd_yyyy/
The try this to fix this problem:
# rm -f /var/lib/rpm/__db*
# db_verify /var/lib/rpm/Packages
# rpm --rebuilddb
# yum clean all
And finally verify that error has gone with the following yum command
# yum update
answered Apr 25, 2015 at 15:40
Alex JoligAlex Jolig
2,2193 gold badges14 silver badges19 bronze badges
7
All I had to do was to delete the two file with the «.lock» extension, and the three files that started with «__db».
# rm /var/lib/rpm/.dbenv.lock
# rm /var/lib/rpm/.rpm.lock
# rm /var/lib/rpm/__db*
After that, yum update
worked.
answered Jan 17, 2019 at 19:00
isapirisapir
3983 silver badges11 bronze badges
Thanks Alex, your answer worked for me apart from one slight change I had to make.
rm -f /var/lib/rpm/__db*
returned errors
rm: cannot remove `/var/lib/rpm/__db.001': Is a directory
rm: cannot remove `/var/lib/rpm/__db.002': Is a directory
rm: cannot remove `/var/lib/rpm/__db.004': Is a directory
so I had to recurse with
rm -rf /var/lib/rpm/__db*
answered Jun 6, 2015 at 20:18
1
I tried the above one it did’nt work
below works fine
# cd /var/lib
# tar -zcvf /var/preserve/rpmdb-$(date +%Y-%m-%d_%H-%M-%S).tar.gz rpm
Note: This tar backup can be used if the attempt to recover the RPM database has issues.
Verify integrity of the Packages file:
# cd /var/lib/rpm
# rm -f __db* # to avoid stale locks
# /usr/lib/rpm/rpmdb_verify Packages
# mv Packages Packages.orig
# /usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages
# rpm -vv --rebuilddb
Once again verify RPM database:
# cd /var/lib/rpm
# /usr/lib/rpm/rpmdb_verify Packages
answered Apr 16, 2018 at 7:30
AReddyAReddy
3,0545 gold badges34 silver badges70 bronze badges
2
Как то при обновлении пакетов на сервере получил не очень приятное сообщение
# yum check-update rpmdb: Thread/process 25837/139766049310464 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
Сперва не понял что это всё означает. Альтернативная проверка дала тот же результат
# rpm -qa rpmdb: Thread/process 25837/139766049310464 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 rpmdb: Thread/process 25837/139766049310464 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 database in /var/lib/rpm
Всё таки не хочет обновляться так как система не может получить список пакетов. Хочет что бы я сделал восстановление базы. Проверяем что в указанном каталоге
# ls -l /var/lib/rpm total 46592 -rw-r--r--. 1 root root 1548288 Jul 25 13:56 Basenames -rw-r--r--. 1 root root 12288 Jul 25 13:56 Conflictname -rw-r--r-- 1 root root 73728 Jul 25 14:06 __db.001 -rw-r--r-- 1 root root 229376 Jul 25 14:06 __db.002 -rw-r--r-- 1 root root 1318912 Jul 25 14:06 __db.003 -rw-r--r-- 1 root root 753664 Jul 25 14:00 __db.004 -rw-r--r--. 1 root root 544768 Jul 25 13:56 Dirnames -rw-r--r--. 1 root root 2609152 Jul 25 13:56 Filedigests -rw-r--r--. 1 root root 12288 Jul 25 13:56 Group -rw-r--r--. 1 root root 8192 Jul 25 13:56 Installtid -rw-r--r--. 1 root root 24576 Jul 25 13:56 Name -rw-r--r--. 1 root root 12288 Jul 25 13:56 Obsoletename -rw-r--r--. 1 root root 38973440 Jul 25 13:56 Packages -rw-r--r--. 1 root root 1339392 Jul 25 13:56 Providename -rw-r--r--. 1 root root 1036288 Jul 25 13:56 Provideversion -rw-r--r--. 1 root root 12288 May 5 23:02 Pubkeys -rw-r--r--. 1 root root 192512 Jul 25 13:56 Requirename -rw-r--r--. 1 root root 98304 Jul 25 13:56 Requireversion -rw-r--r--. 1 root root 45056 Jul 25 13:56 Sha1header -rw-r--r--. 1 root root 24576 Jul 25 13:56 Sigmd5 -rw-r--r--. 1 root root 12288 May 5 22:20 Triggername
Вроде всё на месте. Хорошо, раз требуется восстановление базы то запустим его
# rpm --rebuilddb rpmdb: Thread/process 25837/139766049310464 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)
Ага, не тут то было. База сломалась сильнее, ем ожидалось. Тогда просто удалим базу и пересоздадим снова
# rm -f /var/lib/rpm/__* # rpm --rebuilddb
И проверим
# rpm -qa | grep yum yum-3.2.29-73.el6.centos.noarch yum-plugin-fastestmirror-1.1.30-37.el6.noarch yum-metadata-parser-1.1.2-16.el6.x86_64 # rpm -qa | wc -l 340
Замечательно! База пакетов актуальная и можно выполнять обновление.