GNU/Linux >> Tutoriels Linux >  >> Cent OS

Reconstruire une base de données RPM corrompue

Il y a quelques jours, l'un de nos clients a signalé qu'il ne pouvait installer aucun package à l'aide de la commande yum avec CentOS Linux. Après enquête, j'ai découvert que la base de données RPM était corrompue. Il s'agit d'un problème très courant sur les serveurs CentOS et RHEL.

Les serveurs CentOS et RHEL utilisent RPM pour gérer l'installation, la suppression et les mises à niveau des packages. Si la base de données RPM est corrompue d'une manière ou d'une autre, les autres outils système qui s'appuient sur RPM, tels que Yum/Dnf, cesseront de fonctionner.

Comment puis-je reconstruire la base de données RPM sur CentOS ou RHEL ?

Installez certaines exigences pour vous assurer que vous pouvez réparer votre base de données RPM :

yum install db4-utils yum-utils -y

Assurez-vous toujours d'avoir une sauvegarde de votre base de données RPM actuelle

rsync -avpr /var/lib/rpm /var/lib/rpm.bak

Reconstruire une base de données RPM corrompue :2 solutions

1) Supprimez les fichiers de base de données RPM et reconstruisez :

rm /var/lib/__db* -fv
rpm --rebuilddb

La commande rpm –rebuilddb reconstruit la base de données RPM en fonction du fichier /var/lib/rpm/Packages. Les fichiers "Packages" sont nécessaires pour reconstruire votre base de données RPM. Sur les serveurs lents, cette commande peut prendre un certain temps à s'exécuter.

Essayez d'utiliser yum normalement maintenant, si cela ne résout pas votre problème, passez à l'étape 2 :

2) Recharger les packages RPM

Une autre stratégie intéressante pour reconstruire votre base de données RPM corrompue consiste à utiliser les outils db_dump et db_load. Dans l'exemple ci-dessous, nous utiliserons db_dump pour vider le fichier Packages, puis db_load sera utilisé pour recharger le fichier Packages. Il s'agit d'un autre moyen de résoudre les problèmes de RPM Db :

cd /var/lib/rpmdb
mv Packages Packages.bak
db_dump Packages.bak | db_load Packages

En tant que contrôle d'intégrité supplémentaire, interrogez tous les en-têtes de la base de données

rpm -qa

Enfin, reconstruisez la base de données RPM :

rpm --rebuilddb

À ce stade, votre base de données RPM devrait à nouveau fonctionner pleinement. Veuillez nous faire savoir si ces deux étapes ne fonctionnent pas pour vous, ou si vous connaissez d'autres solutions à partager avec nous.

Autres lectures

  • Reconstruire une base de données RPM, par rpm.org :http://www.rpm.org/max-rpm/ch-rpm-miscellania.html
  • Reconstruction de la base de données RPM, par :fedoraproject.org : http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch04s05s02.html
  • Récupération de base de données RPM sur RHEL, par Daniel Berrange : http://people.redhat.com/berrange/notes/rpmrecovery.html

La reconstruction d'une base de données RPM corrompue a été modifiée pour la dernière fois :le 7 février 2017 par Esteban Borges
Cent OS
  1. FAQ sur le déploiement de MySQL

  2. Optimiser la base de données MySQL

  3. Commandes RPM

  4. Serveur de base de données PostgreSQL

  5. Comment récupérer d'une base de données RPM corrompue (reconstruction d'une base de données RPM)

10 bonnes pratiques en matière de sécurité des bases de données

Qu'est-ce qu'une base de données ?

Comment créer une base de données dans PostgreSQL

Commande RPM sous Linux

Serveur de base de données MySQL

Installer htop sur centos 6.4