Inicio » Cómo reparar una base de datos SQLite corrupta en Sonarr o Radarr
Sistemas y Servidores

Cómo reparar una base de datos SQLite corrupta en Sonarr o Radarr

✨ Respuesta Rápida

El error de base de datos corrupta en Sonarr o Radarr (identificado en los logs con el mensaje database disk image is malformed) ocurre cuando el archivo interno SQLite (sonarr.db o radarr.db) se corrompe por escrituras interrumpidas, cortes repentinos de energía en tu servidor o problemas de sincronización de bloqueos de archivos en sistemas de almacenamiento en red.

El Diagnóstico Rápido

Causa
Base de datos SQLite de Sonarr/Radarr corrupta por apagado repentino del contenedor
Solución
Restaurar un respaldo automático de la carpeta Backups/scheduled/
Causa
Integridad de la base de datos sqlite3 dañada
Solución
Reparar exportando e importando datos: `sqlite3 sonarr.db ".recover"

El error de base de datos corrupta en Sonarr o Radarr (identificado en los logs con el mensaje database disk image is malformed) ocurre cuando el archivo interno SQLite (sonarr.db o radarr.db) se corrompe por escrituras interrumpidas, cortes repentinos de energía en tu servidor o problemas de sincronización de bloqueos de archivos en sistemas de almacenamiento en red.

La Solución Paso a Paso

  1. 1

    Paso 1: Detener el contenedor o servicio afectado

    Antes de manipular la base de datos, debes asegurarte de que no haya ningún proceso escribiendo en ella. Detén el contenedor de Docker correspondiente:

    BASH
    docker stop sonarr
    
  2. 2

    Paso 2: Ejecutar los comandos de recuperación de SQLite

    Accede al directorio donde se guardan las configuraciones del contenedor (típicamente /docker/sonarr/ o /home/usuario/appdata/sonarr/) y ejecuta las herramientas de rescate de SQLite en tu terminal:

    BASH
    # Exportar los datos sanos del archivo corrupto a una plantilla de recuperación
    sqlite3 sonarr.db ".recover" | sqlite3 clean.db
    
    # Respaldar la base de datos corrupta original
    mv sonarr.db sonarr.db.bak
    
    # Reemplazar la base de datos por la versión limpia recuperada
    mv clean.db sonarr.db
    
    # Verificar que los permisos del archivo sean correctos (ejemplo para Docker)
    chmod 664 sonarr.db
    
  3. 3

    Paso 3: Reiniciar el servicio

    Vuelve a iniciar el contenedor o servicio. Sonarr leerá el archivo restaurado sin problemas:

    BASH
    docker start sonarr
    

Consejo de Prevención

Prácticas de seguridad recomendadas:

  • Jamás montes las bases de datos de tus contenedores multimedia (sonarr.db, radarr.db o plex.db) sobre rutas de red compartidas mediante protocolos como NFS o SMB/CIFS. SQLite no está diseñado para coordinar accesos simultáneos con latencia de red. La falta de consistencia en el bloqueo de archivos a través de la red corromperá el índice de indexación de inmediato ante la mínima fluctuación de conexión, destruyendo tus configuraciones de forma irreversible.