database mess up

Panu Matilainen pmatilai at laiskiainen.org
Fri Jan 23 17:49:02 UTC 2009


On Fri, 23 Jan 2009, Craig White wrote:

> On Fri, 2009-01-23 at 11:04 +0000, Patrick Dupre wrote:
>> On Thu, 22 Jan 2009, Craig White wrote:
>>
>>> On Fri, 2009-01-23 at 02:36 +0000, Patrick Dupre wrote:
>>>> On Thu, 22 Jan 2009, Craig White wrote:
>>>>
>>>>> On Fri, 2009-01-23 at 02:19 +0000, Patrick Dupre wrote:
>>>>>> On Thu, 22 Jan 2009, Craig White wrote:
>>>>>>
>>>>>>> On Fri, 2009-01-23 at 01:00 +0000, Patrick Dupre wrote:
>>>>>>>> On Thu, 22 Jan 2009, Panu Matilainen wrote:
>>>>>>>>
>>>>>>>>> On Wed, 21 Jan 2009, Patrick Dupre wrote:
>>>>>>>>>
>>>>>>>>>> Hello,
>>>>>>>>>>
>>>>>>>>>> For a reason that I ignore my database is totallt mess up.
>>>>>>>>>> rpm --rebuilddb only rebuild iy partially.
>>>>>>>>>> The packages are installed, but rpm --rebuilddb does not see them.
>>>>>>>>>> How can I recover them without resintalling them manually ?
>>>>>>>>>
>>>>>>>>> Find the latest intact /var/log/rpmpkgs* file (ie one that got generated
>>>>>>>>> before the db got corrupted, file size should be a good indicator) and copy
>>>>>>>>> it somewhere safe, say /root/rpmpkgs.backup. Now you should be able to make
>>>>>>>>> fairly good recovery with something like:
>>>>>>>>>
>>>>>>>>> # mv /var/lib/rpm /var/lib/rpm.busted
>>>>>>>>> # mkdir /var/tmp/download; cd /var/tmp/download
>>>>>>>>> # yumdownloader `sed -e "s/.rpm$//g" /root/rpmpkgs.backup`
>>>>>>>>> # rpm -Uvh --notriggers --noscripts --justdb *.rpm
>>>>>>>>>
>>>>>>>>> The question of course is, what got the database corrupted to begin with.
>>>>>>>>> Did anything out of the ordinary happen at that time, like /var getting full?
>>>>>>>>> Segfaults logged in /var/log/messages*? What filesystem is /var on?
>>>>>>>>>
>>>>>>>>> 	- Panu -
>>>>>>>> It just end up with disk full !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
>>>>>>> ----
>>>>>>> you have to fix that - there's no way you can have a working software
>>>>>>> package system with a full disk - it just gets corrupted.
>>>>>>>
>>>>>> Of course, I did it !!!!!!
>>>>> ----
>>>>> maybe you don't have enough space yet...
>>>>>
>>>>> what's output of...
>>>>>
>>>>> df -h
>>>>>
>>>> /dev/sdc5             2.9G  1.8G  961M  66% /
>>>> /dev/mapper/VG1-usr   6.9G  4.1G  2.5G  63% /usr
>>>> /dev/mapper/VG1-usr_lib
>>>>                        6.0G  2.0G  3.7G  35% /usr/lib
>>>> /dev/mapper/VG1-usr_local
>>>>                        5.0G  1.8G  3.0G  38% /usr/local
>>>> /dev/mapper/VG1-usr_src
>>>>                        5.0G  1.4G  3.4G  29% /usr/src
>>>> /dev/mapper/VG1-tmp   2.0G  263M  1.7G  14% /tmp
>>>> /dev/mapper/VG1-home  8.9G  4.9G  3.6G  58% /home
>>>> /dev/mapper/VG1-iso_image
>>> ----
>>> OK - small hard drive is killing you but if this doesn't work...
>>>
>>> rm -fr /var/lib/rpm/__*
>>> rpm --rebuilddb
>>>
>>> then your only hope for fixing this would be to follow the instructions
>>> here...
>>>
>>> http://www.rpm.org/wiki/Docs/RpmRecovery
>> OK, but /usr/lib/rpm/rpmdb_sta is not part of rpm for fedora !
>> Regards
> ----
> indeed - they seem to have removed the db4 utilities from rpmdb

Rpm in F10 no longer uses an internal copy of db4 so this isn't 
practical to do anymore.

> even worse, I installed db4-utils package and ran...
>
> # cd /var/lib/rpm
> # db_dump Packages
> db_dump: Program version 4.7 doesn't match environment version 4.5
> db_dump: DB_ENV->open: DB_VERSION_MISMATCH: Database environment version
> mismatch
>
> which means that I can't use db4-utils to do anything with rpmdb on
> Fedora 10

Use the db45_foo variants instead, eg db45_dump

 	- Panu -




More information about the fedora-list mailing list