Under certain conditions the RPM database used by yum will become corrupt. Here is how to resolve this issue. You may see an error such as “Warning: RPMDB altered outside of yum” or “error: rpmdbNextIterator”
1. Take a backup FIRST, before trying to have rpm repair the database.
cd /var/lib
tar zcvf /var/preserve/rpmdb-[today's date].tar.gz rpm
Verify integrity with
cd /var/lib/rpm
rm -f __db* # to avoid stale locks
/usr/lib/rpm/rpmdb_verify Packages
Next run the following:
mv Packages Packages.orig
/usr/lib/rpm/rpmdb_dump Packages.orig | /usr/lib/rpm/rpmdb_load Packages
/usr/lib/rpm/rpmdb_verify Packages
rpm -qa
Finally rebuild the database:
rpm -vv --rebuilddb
for the error :
error: rpmdbNextIterator
run:
mv /var/lib/rpm/Pubkeys /var/lib/rpm/Pubkeys.backup
rpm --rebuilddb -vv to recreate the index.
from : https://bugzilla.redhat.com/show_bug.cgi?id=108915
reference : http://kbase.redhat.com/faq/docs/DOC-6904#