¿Cómo reparar una base de datos SQL Server en modo de recuperación?
Resumen: Este blog analiza las causas comunes detrás de la "base de datos SQL Server atascado en modo de recuperación" problema. Además, se describe cómo solucionar y solucionar el problema. Si el proceso de recuperación no consigue poner la base de datos en línea, pruebe a utilizar una herramienta de recuperación de SQL para recuperar el acceso a la base de datos, sin tiempos de inactividad prolongados.
Al reiniciar SQL Server o los servicios tras el cierre de la base de datos SQL, la caída del servidor o la corrupción de la base de datos, la base de datos pasa automáticamente al estado de “recuperación“. La base de datos pasa a estar en línea una vez finalizado el proceso de recuperación. Sin embargo, si la base de datos está tardando demasiado en recuperarse, es importante saber por qué la base de datos está atascada en la recuperación.
¿Qué causa el bloqueo de la base de datos SQL Server en modo de recuperación?
Usted puede comprobar el registro de errores de SQL Server para conocer la causa detrás de la base de datos atascado en modo de recuperación problema. Causas comunes detrás de la cuestión incluye:
- Es posible que esté restaurando la base de datos a partir de copias de seguridad completas, diferenciales y de registro con la opción NORECOVERY activada, pero que no se haya especificado RECOVERY durante la última restauración.
- Según MSDN, el registro de transacciones puede llenarse cuando una base de datos está en recuperación. SQL Server detiene todas las transacciones en ejecución hasta que se libera el almacenamiento del registro, lo que ralentiza la recuperación de la base de datos. Varios archivos de registro virtuales (VLF) en un registro de transacciones también pueden ralentizar el proceso de recuperación.
- El proceso de recuperación puede detenerse si su base de datos está dañada o tiene algún tipo de corrupción.
Solución del problema “Base de datos SQL Server en modo de recuperación
A continuación se ofrecen algunos consejos sencillos para solucionar el problema de la base de datos de SQL Server en modo de recuperación:
Consejo 1 – Restaurar la base de datos con RECOVERY
Nota: Ejecutar ‘RESTORE with Recovery’ hará que la base de datos vuelva a pasar por los mismos pasos de recuperación. Evite esta opción si tiene una base de datos grande.
Ejecute la siguiente consulta para que su base de datos vuelva a estar en línea:
RESTORE DATABASE db_name WITH RECOVERY; |
La consulta revertirá cualquier transacción no comprometida y sacará la base de datos del modo de recuperación.
Consejo 2 – Aplique las correcciones de Microsoft
Si tiene demasiados VLF dentro del registro de transacciones, lo que provoca una recuperación lenta de la base de datos, aplicar las correcciones de Microsoft puede ayudar.
Consejo 3 – Ejecute DBCC CHECKDB para Determinar la Corrupción de la Base de Datos
Ejecute DBCC CHECKDB en la base de datos problemática. Si informa de errores de consistencia, debe reparar la base de datos utilizando la opción de nivel mínimo de reparación. Para obtener más información, lea esto: Leer más
Si estos consejos de solución de problemas fallan, intente resolver el problema utilizando las soluciones que se comentan en la siguiente sección.
Soluciones para solucionar el problema de base de datos SQL Server en modo de recuperación
A continuación se presentan las dos soluciones que puede utilizar para solucionar el problema:
Solución 1 – Restaurar la base de datos desde la copia de seguridad más reciente
Nota: Pase a la siguiente solución si la copia de seguridad está obsoleta o dañada.
Si el proceso de recuperación de la base de datos parece atascado durante mucho tiempo, intente restaurar la base de datos a partir de una copia de seguridad actualizada. Para ello, siga estos pasos:
- Abra SQL Server Management Studio (SSMS), haga clic con el botón derecho en Bases de datos y haga clic en Restaurar base de datos.
- En la sección Fuente, seleccione la opción Dispositivo y, a continuación, haga clic en el botón situado junto a ella.
- En el cuadro de diálogo que se abre, pulse Añadir.
- Localice y seleccione el archivo de copia de seguridad (.bak) que desea restaurar y, a continuación, pulse OK.
- Vuelva a hacer clic en Aceptar.
- En la pantalla Restaurar base de datos, introduzca el nombre de la base de datos que desea restaurar y haga clic en Aceptar.
- Se restaurará la base de datos.
Nota: Restaurar una base de datos grande que contenga varias tablas puede llevar mucho tiempo.
Solución 2 – Utilice una herramienta profesional de recuperación de bases de datos SQL
Si no dispone de copia de seguridad o desea restaurar rápidamente la base de datos, puede utilizar una herramienta de recuperación de SQL, como Stellar Repair for MS SQL. El software repara los archivos .mdf/.ndf y restaura la base de datos a su forma original.
Vea este vídeo para entender cómo funciona el programa:
Conclusión
En este artículo se discute acerca de la base de datos SQL se ha quedado atascado en ‘Recuperar’ estado. También se describen las causas comunes detrás de la base de datos SQL Server en modo de recuperación y consejos para solucionar el problema. Si estos consejos no ayudan, la aplicación de las soluciones puede ayudar a llevar la base de datos a un estado coherente. Una herramienta de recuperación de base de datos SQL puede ser útil cuando todo lo demás falla para restaurar la base de datos.