GNU/Linux >> Znalost Linux >  >> Cent OS

Obnovení poškozené databáze RPM

Před několika dny jeden z našich zákazníků oznámil, že nemůže nainstalovat žádné balíčky pomocí příkazu yum pomocí CentOS Linux. Po prozkoumání jsem zjistil, že databáze RPM byla poškozená. Toto je velmi častý problém na serverech CentOS a RHEL.

Servery CentOS a RHEL používají rpm ke správě instalace, odstraňování a upgradů balíčků. Pokud je databáze rpm nějakým způsobem poškozena, ostatní systémové nástroje, které se spoléhají na RPM, jako je Yum/Dnf, přestanou fungovat.

Jak mohu znovu sestavit databázi RPM na CentOS nebo RHEL?

Nainstalujte některé požadavky, abyste zajistili, že můžete opravit databázi RPM:

yum install db4-utils yum-utils -y

Vždy se ujistěte, že máte zálohu své aktuální databáze RPM

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

Obnova poškozené databáze RPM:2 řešení

1) Odeberte soubory databáze RPM a znovu vytvořte:

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

Příkaz rpm –rebuilddb znovu sestaví databázi RPM na základě souboru /var/lib/rpm/Packages. Soubory „Packages“ jsou vyžadovány, aby bylo možné znovu vytvořit databázi RPM. Na pomalých serverech může provedení tohoto příkazu nějakou dobu trvat.

Zkuste nyní použít yum normall, pokud to váš problém nevyřeší, přejděte ke kroku 2:

2) Znovu načíst balíčky RPM

Další příjemnou strategií pro obnovu poškozené databáze RPM je použití nástrojů db_dump a db_load. V níže uvedeném příkladu použijeme db_dump k výpisu souboru Packages a poté bude db_load použit k opětovnému načtení souboru Packages. Toto je alternativní způsob, jak vyřešit problémy s RPM Db:

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

Jako další kontrola zdravého rozumu se zeptejte na všechna záhlaví v DB

rpm -qa

Nakonec znovu vytvořte databázi RPM:

rpm --rebuilddb

V tomto okamžiku byste měli mít databázi RPM opět plně funkční. Dejte nám prosím vědět, pokud vám tyto dva kroky nevyhovují, nebo pokud znáte jiná řešení, o která se s námi můžete podělit.

Další čtení

  • Znovu vytvořte databázi RPM od rpm.org:http://www.rpm.org/max-rpm/ch-rpm-miscellania.html
  • Přebudování databáze RPM od:fedoraproject.org: http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/ch04s05s02.html
  • RPM DB Recovery na RHEL, Daniel Berrange: http://people.redhat.com/berrange/notes/rpmrecovery.html

Přestavba poškozené databáze RPM byla naposledy upravena:7. února 2017 Estebanem Borgesem
Cent OS
  1. Optimalizujte databázi MySQL

  2. Databázový server PostgreSQL

  3. Jak opravit poškozenou tabulku databáze MySQL

  1. Nejčastější dotazy k nasazení MySQL

  2. RPM příkazy

  3. Jak se zotavit z poškozené databáze RPM (obnovení databáze RPM)

  1. Co je distribuovaná databáze?

  2. Co je vícemodelová databáze?

  3. 12 nejlepších cloudových databází