¿Cómo solucionar el error “No se puede recuperar la base de datos porque no se ha restaurado el registro”?
Resumen: ¿Es su base de datos SQL Server atascado en el estado de restauración y devuelve el error 'La base de datos no se puede recuperar porque el registro no fue restaurado'. En este post, aprender las posibles razones detrás de este error de SQL Server y las soluciones para solucionarlo. Además, conocerá otros problemas que pueden producirse durante el proceso de restauración. También encontrará información sobre una herramienta avanzada de recuperación de SQL que puede ayudar a restaurar la base de datos sin ninguna pérdida de datos.
A veces, al intentar restaurar una base de datos de SQL Server, se encuentra con una situación en la que la base de datos se bloquea en el estado Restaurando y muestra el siguiente mensaje de error:
Msg 4333, Nivel 16, Estado 1, Línea 1
No se puede recuperar la base de datos porque no se ha restaurado el registro.
Msg 3013, Nivel 16, Estado 1, Línea 1
RESTORE DATABASE está terminando anormalmente.
¿Cuál es la causa del error?
No hay razones conocidas como tales que causen particularmente este error. Sin embargo, el error puede producirse por cualquiera de estos motivos:
- La instancia de SQL Server se desconectó al restaurar las copias de seguridad del registro de transacciones.
- Se ha cancelado el proceso de restauración.
- El servidor se quedó sin espacio en disco al restaurar la base de datos.
¿Cómo solucionar el error?
Nota: Antes de proceder, asegúrese de que el servidor tiene suficiente espacio en disco e intente restaurar la base de datos. Si no tiene problemas de espacio en disco, siga la solución descrita a continuación.
Para resolver el problema, intente eliminar la base de datos problemática y restaurarla de nuevo. Para ello, ejecute lo siguiente en la ventana de consulta de SQL Server Management Studio (SSMS):
Nota: Si no puede DROP la base de datos, intente separar la base de datos utilizando el procedimiento almacenado sp_detach_db. Si el procedimiento almacenado devuelve el error ‘database is in use‘, puede utilizar el comando dbcc detachdb para separar la base de datos. Sin embargo, debe tener cuidado, ya que se trata de un comando no documentado.
USE [master]
IR A
– Crear la base de datos de nuevo con el mismo nombre que el original
CREAR BASE DE DATOS [nombre_base_de_datos];
– restaurar la base de datos utilizando los scripts de copia de seguridad habituales
RESTORE DATABASE nombre_base_de_datos
FROM DISK = ‘introduzca la ruta del archivo .bak’
CON RECUPERACIÓN
Nota: Si necesita restaurar varios archivos de base de datos, ejecute el comando RESTORE CON la opción NORECOVERY. Para el último archivo de base de datos, ejecute el comando RESTORE CON RECUPERACIÓN.
¿Qué hacer si la base de datos se vuelve inaccesible?
Si puede restaurar la base de datos pero ya no es accesible y está marcada como SOSPECHOSA, tendrá que repararla. Tenga en cuenta que no puede reparar una base de datos SOSPECHOSA. Primero tendrá que hacer accesible la base de datos poniéndola en modo de EMERGENCIA. Para ello, ejecute el siguiente comando:
ALTER DATABASE database_name SET EMERGENCY
Una vez que la base de datos sea accesible, es vital que tengas acceso exclusivo a ella. Por lo tanto, establezca el estado de la base de datos en modo SINGLE_USER y ejecute DBCC CHECKDB con la opción ‘REPAIR_ALLOW_DATA_LOSS’.
ALTER DATABASE database_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE
DBCC CHECKDB (‘nombre_base_de_datos’,REPAIR_ALLOW_DATA_LOSS)
A continuación, vuelva a poner la base de datos en modo MULTI_USUARIO ejecutando el siguiente comando:
ALTER DATABASE database_name SET MULTI_USER
Lea en detalle: ¿Cómo Recuperar Base de Datos MS SQL de Modo Sospechoso?
Actualiza la base de datos y comprueba si puedes acceder a ella.
Si la base de datos sigue inaccesible y necesita evitar cualquier pérdida de datos, utilice una SQL recovery tool que pueda ayudarle a restaurar la base de datos manteniendo sus datos intactos. Puede utilizar Stellar Repair for MS SQL para reparar el archivo de base de datos (MDF) y restaurarlo a su estado original. Además, el software ayuda a restaurar la base de datos con una velocidad 8X permitiéndole guardar múltiples (hasta 8 tablas) simultáneamente.
El software también puede ayudar a restaurar registros eliminados de una base de datos SQL Server. Además, puede previsualizar los componentes reparados antes de guardarlos en una base de datos existente, una base de datos nueva u otros formatos de archivo (CSV, HTML o XLS).
Conclusión
Si obtiene el error “La base de datos no puede recuperarse porque no se ha restaurado el registro”, puede que le ayude a solucionar el error cerrar la base de datos y restaurarla desde la copia de seguridad. Si la restauración falla o la base de datos se ha vuelto inaccesible, intente reparar la base de datos utilizando DBCC CHECKDB con el comando REPAIR_ALLOW_DATA_LOSS. Si esto no ayuda, puede utilizar el software Stellar Repair for MS SQL para reparar y restaurar la base de datos.