¿Cómo arreglar el estado pendiente de recuperación en la base de datos de SQL Server?

Summary: Este post se describen las razones por las que una base de datos (db) se marca en el estado pendiente de recuperación. También, se describen los métodos para arreglar 'base de datos de SQL Server en estado pendiente de recuperación' problema. Usted puede resolver el problema mediante la ejecución de consultas en SQL Server Management Studio (SSMS), o mediante el uso de Stellar Repair for MS SQL software.

Estados de la base de datos de SQL Server

Se considera que una base de datos SQL está dañada si uno o varios de sus archivos principales se encuentran en un estado inconsistente. Dependiendo de la gravedad del daño, la db se marca con diferentes estados. Algunos de estos estados son

Estados de la base de datos de SQL Server

Entendamos primero cómo se puede comprobar el estado actual de la base de datos. 

¿Cómo comprobar el estado de la base de datos?

Para comprobar el estado actual de una base de datos SQL, ejecute la siguiente consulta:

SELECT name, state_desc from sys.databases

GO

La ejecución de la consulta le dará una salida parecida a la siguiente

Estados de la base de datos

Razones detrás del Estado Pendiente de Recuperación en SQL Server.

Algunas de las razones que causan este problema son

Métodos para solucionar el problema de recuperación pendiente en la base de datos de SQL Server

Nota: Antes de iniciar cualquiera de los siguientes procedimientos de reparación, asegúrese de hacer una copia de seguridad de la base de datos, para tener una copia a prueba de fallos en caso de que algo vaya mal.

Método 1 – Formas manuales de resolver la base de datos en estado pendiente

A continuación se presentan las dos formas manuales que ayudan a llevar la base de datos SQL en modo de recuperación al modo normal:

1. Marcar la base de datos en modo de emergencia e iniciar la reparación forzosa

El modo EMERGENCIA de la base de datos marca la base de datos como READ_ONLY, deshabilita el registro y concede acceso sólo a los administradores del sistema. Esencialmente, al poner la base de datos en este modo se puede poner en línea la base de datos inaccesible.

Nota: Normalmente una base de datos sale del modo de EMERGENCIA automáticamente. Si tiene problemas para restaurar la base de datos desde este modo, lea este artículo Recuperar base de datos SQL del modo de emergencia al modo normal.

Una vez que haya abierto la base de datos en modo EMERGENCIA, intente reparar la base de datos utilizando el comando DBCC CHECKDB con la opción ‘REPAIR_ALLOW_DATA_LOSS’. Para ello, abra SSMS y ejecute el siguiente conjunto de consultas:

ALTER DATABASE [DBName] SET EMERGENCY;
GO
ALTER DATABASE [DBName] set single_user
GO
DBCC CHECKDB ([DBName], REPAIR_ALLOW_DATA_LOSS) WITH ALL_ERRORMSGS;
GO
ALTER DATABASE [DBName] set multi_user
GO

2. Marcar la base de datos en modo de emergencia, separar la base de datos principal y volver a conectarla

Esta solución también requiere marcar la base de datos en modo de emergencia. Una vez hecho esto, saque la base de datos fuera de línea (detach) y luego póngala en línea (re-attach). Para ello, ejecute el siguiente conjunto de consultas en SSMS:

ALTER DATABASE [DBName] SET EMERGENCY;
ALTER DATABASE [DBName] set multi_user
EXEC sp_detach_db ?[DBName]?
EXEC sp_attach_single_file_db @DBName = ?[DBName]?, @physname = N'[mdf path]?

El conjunto de consultas anterior ayuda a que el servidor se deshaga del registro corrupto y construya uno nuevo automáticamente.

Método 2 – Utilizar el software Stellar Repair for MS SQL

Si los métodos anteriores no pueden ayudar a resolver el problema de la base de datos en estado pendiente de recuperación, utilice el software Stellar Repair for MS SQL. El software puede ayudarle a reparar los archivos de la base de datos corruptos y hacer que la base de datos vuelva a estar en línea desde el estado pendiente de recuperación rápidamente y sin problemas.

Pasos para utilizar el software Stellar Repair for MS SQL

Seleccionar archivo de base de datos
Modo de escaneo
Vista previa de los objetos de la base de datos
Opción de guardar

1.       Elija MDF en Guardar como.

2.       Seleccione Nueva base de datos o Base de datos viva en Opción de guardar.

3.      Introduzca los datos necesarios en la sección Conectar al servidor por autenticación o Autenticación de SQL Server.

Opciones de autenticación para la conectividad
Figura 8 – Opciones de guardado de archivos
Figura 9 – Ventana de guardar el archivo completo

El archivo reparado se guardará en la ubicación seleccionada.

Nota: Para obtener información detallada sobre el uso del software Stellar Repair for MS SQL, consulte esta guía del usuario.

Características principales de Stellar Repair for MS SQL

Conclusión

Este post describe las razones detrás del problema ‘db en estado pendiente de recuperación’ como la base de datos no se cierra limpiamente, los archivos de la base de datos (.mdf o .ndf) se volvieron corruptos, insuficiente memoria o espacio en disco. También describió los métodos para arreglar el estado pendiente de recuperación en la base de datos de SQL Server.

Usted puede arreglar la base de datos poniéndola en estado de emergencia, e iniciando el proceso de reparación o desligando y volviendo a ligar la db. Pero, tales soluciones tienen sus propias desventajas:

Puede superar estas limitaciones utilizando el software Stellar Repair for MS SQL. El software ayuda a los usuarios de SQL y a los administradores de bases de datos (DBA) a solucionar errores graves de corrupción de bases de datos. Además, garantiza la recuperación completa de los componentes de la base de datos, preservando la integridad de los datos

Related Post