GNU/Linux >> Linux Esercitazione >  >> Cent OS

Ricostruzione di un database RPM danneggiato

Alcuni giorni fa uno dei nostri clienti ha riferito di non poter installare alcun pacchetto utilizzando il comando yum utilizzando CentOS Linux. Dopo aver indagato, ho scoperto che il database RPM era danneggiato. Questo è un problema molto comune sui server CentOS e RHEL.

I server CentOS e RHEL utilizzano rpm per gestire l'installazione, la rimozione e gli aggiornamenti dei pacchetti. Se il database rpm è danneggiato in qualche modo, altri strumenti di sistema che si basano su RPM come Yum/Dnf smetteranno di funzionare.

Come posso ricostruire il database RPM su CentOS o RHEL?

Installa alcuni requisiti per assicurarti di poter correggere il tuo database RPM:

yum install db4-utils yum-utils -y

Assicurati sempre di avere un backup del tuo attuale database RPM

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

Ricostruire un database RPM danneggiato:2 soluzioni

1) Rimuovere i file di database RPM e ricostruire:

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

Il comando rpm –rebuilddb ricostruisce il database RPM in base al file /var/lib/rpm/Packages. I file "Pacchetti" sono necessari per ricostruire il database RPM. Su server lenti l'esecuzione di questo comando può richiedere del tempo.

Prova a utilizzare yum normalmente ora, se ciò non risolve il tuo problema, vai al passaggio 2:

2) Ricarica i pacchetti RPM

Un'altra buona strategia per ricostruire il database RPM danneggiato è utilizzare gli strumenti db_dump e db_load. Nell'esempio seguente utilizzeremo db_dump per eseguire il dump del file Packages, quindi db_load verrà utilizzato per ricaricare il file Packages. Questo è un modo alternativo per risolvere i problemi di RPM Db:

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

Come ulteriore controllo di integrità, interroga tutte le intestazioni nel DB

rpm -qa

Infine, ricostruisci il database RPM:

rpm --rebuilddb

A questo punto dovresti avere il tuo database RPM di nuovo completamente funzionante. Facci sapere se questi due passaggi non funzionano per te o se conosci altre soluzioni da condividere con noi.

Ulteriori letture

  • Ricostruire un database RPM, da rpm.org:http://www.rpm.org/max-rpm/ch-rpm-miscellania.html
  • Ricostruire il database RPM, a cura di:fedoraproject.org: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch04s05s02.html
  • Recupero RPM DB su RHEL, di Daniel Berrange: http://people.redhat.com/berrange/notes/rpmrecovery.html

La ricostruzione di un database RPM danneggiato è stata modificata l'ultima volta:7 febbraio 2017 da Esteban Borges
Cent OS
  1. Domande frequenti sulla distribuzione di MySQL

  2. Ottimizza il database MySQL

  3. Comandi RPM

  4. Server database PostgreSQL

  5. Come riparare la tabella del database MySQL danneggiata

10 best practice per la sicurezza del database

Che cos'è un database?

Come creare un database in PostgreSQL

Comando RPM in Linux

Server database MySQL

Installa htop su centos 6.4