GNU/Linux >> Tutoriales Linux >  >> Cent OS

Cómo recuperarse de una base de datos RPM corrupta (reconstruir una base de datos RPM)

Por qué la base de datos rpm se corrompe

Puede haber múltiples razones que pueden conducir a la corrupción de la base de datos rpm. No se puede identificar exactamente un solo RCA debido a las limitaciones, no existe un mecanismo para monitorear la corrupción de la base de datos rpm.

– La base de datos rpm se consulta cada vez que el administrador/algún proceso ejecuta cualquier comando rpm.
– Incluso durante las transacciones yum, la base de datos rpm se altera mucho.
– Un pequeño puntero también puede causar tal corrupción.
– Si LD_LIBRARY_PATH se establece en algún valor, incluso la base de datos rpm se corrompe.
– Si se instala un paquete de terceros que provoca cambios innecesarios en la base de datos rpm.
– Las transacciones incompletas también pueden provocar tales corrupciones.
– En el caso de una partición /var ubicada en volúmenes SAN.

Entonces, en total, se pueden considerar muchos factores para tal corrupción de la base de datos rpm. Si la base de datos RPM se corrompe con frecuencia, se recomienda realizar una copia de seguridad de la base de datos RPM con frecuencia a través de cron.

Reparar la base de datos RPM

La herramienta RPM utiliza su propia implementación de base de datos personalizada para contener su información. A veces esa base de datos puede corromperse; los síntomas incluyen reclamos de que falta un paquete RPM instalado; o los intentos de actualizar un RPM simplemente se cuelgan. Los intentos de consultar (rpm -q) algunos paquetes pueden fallar con el siguiente error.

rpmdb: /var/lib/rpm/Packages: unexpected file type or format  
error: cannot open Packages index using db3 - Invalid argument (22)

Si su base de datos RPM está bloqueada o dañada, puede intentar repararla con estos comandos. Tenga en cuenta:No se garantiza que este proceso funcione. Debe iniciar sesión con privilegios de superusuario (también conocido como "root") para realizar estos pasos. Los comandos se pueden copiar y pegar directamente en una ventana de terminal raíz.

1. Asegúrese de que no queden procesos RPM ejecutándose en su sistema. Utilice el comando ps para identificarlos. Use el comando matar para terminar cualquier proceso de "rpm" que encuentre; puede ser necesario un "matar -9".

# ps -ef | grep-i rpm

2. Elimine los archivos de bloqueo que utiliza RPM:

# rm -f /var/lib/rpm/__db*
# /usr/lib/rpm/rpmdb_verify /var/lib/rpm/Packages

3. Si estaba experimentando un comando de "rpm" colgado, inténtelo de nuevo. Si funciona, estás acabado. Si no es así, vuelva a realizar los pasos 1 y 2. Luego continúe con el siguiente paso.

4. Haz una copia de seguridad de tu base de datos RPM:

# cd /var/lib
# mkdir rpm-backup
# rsync -av ./rpm/. ./rpm-backup/.

5. Reconstruya su base de datos RPM:

# rpm -vv --rebuilddb > /tmp/rpmrebuilddb.log 2>&1

6. Intente verificar la base de datos rpm nuevamente.

# cd /var/lib/rpm
# /usr/lib/rpm/rpmdb_verify Packages
Nota :Si los pasos de recuperación anteriores fallan o arrojan errores, restaurar el directorio /var/lib/rpm desde una copia de seguridad reciente del sistema puede ser su mejor opción. Recuerde no sobrescribir la copia de seguridad de alquitrán, ya que aún puede ser valiosa.

6. Vuelva a intentar su comando RPM fallido.

Ejemplos de comandos RPM para consultar, instalar, eliminar y actualizar paquetes


Cent OS
  1. Cómo crear una base de datos en PostgreSQL

  2. ¿Cómo recuperar un trabajo en segundo plano de un shell anterior?

  3. Cómo conectarse a una base de datos MySQL de forma remota desde una computadora

  4. Cómo recuperar archivos de paquetes rpm eliminados (bibliotecas, archivos de configuración) en CentOS/RHEL 7

  5. Reconstruir una base de datos RPM corrupta

¿Cómo restaurar una base de datos MS SQL desde SolidCP?

¿Cómo restaurar una base de datos MySQL desde SolidCP?

¿Cómo cambiar la contraseña de la base de datos MySQL desde WebsitePanel 2.1?

¿Cómo restaurar la base de datos MS SQL desde WebsitePanel 2.1?

¿Cómo restaurar la base de datos MySQL desde WebsitePanel 2.1?

Cómo restaurar una base de datos MySQL desde .SQL Backup