¿Cómo recuperar una base de datos MS SQL del modo sospechoso?

Summary: Lea este post para encontrar soluciones para recuperar la base de datos MS SQL marcado como sospechoso. Describe instrucciones paso a paso para solucionar el problema de "base de datos sospechosa de SQL Server" mediante la ejecución de comandos Transact-SQL (T-SQL) en SQL Server Management Studio (SSMS). Además, proporciona una solución alternativa para restaurar la base de datos mediante una herramienta de recuperación de SQL.

Cuando la base de datos SQL entra en modo sospechoso, se vuelve inaccesible. En tal situación, no podrá conectarse a la base de datos ni recuperarla durante el arranque del servidor.

Figura 1: Base de datos en modo sospechoso

Echa un vistazo a la infografía a continuación para soluciones rápidas para recuperar la base de datos de modo sospechoso en SQL Server 2008, y versiones superiores.

¿Cuándo pasa la base de datos SQL al modo sospechoso?

Cuando SQL Server sospecha que el grupo de archivos primario de la base de datos está dañado o si falta el archivo de la base de datos, el estado de la base de datos se establece en “Sospechoso”.

Además, hay una amplia gama de errores que podrían resultar en la base de datos SQL en modo sospechoso. Algunos de ellos se enumeran a continuación:

¿Cómo sacar la base de datos SQL del modo sospechoso?

NOTA: Puede intentar restaurar la base de datos en modo sospechoso a partir de una buena copia de seguridad conocida. Si la copia de seguridad no está disponible, proceda con los siguientes pasos.

Siga los pasos en la secuencia indicada a continuación para recuperar la base de datos MS SQL desde el modo sospechoso:

Paso 1: Abra SSMS y conéctese a la base de datos.

Figura 2: Conectarse a la base de datos

Paso 2: Seleccione la opción Nueva consulta.

Figura 3: Seleccionar nueva consulta

Paso 3: En la ventana del editor de consultas, introduzca el siguiente código para desactivar el indicador de sospechoso en la base de datos y ponerlo en EMERGENCIA:

EXEC sp_resetstatus ‘nombre_db’;

ALTER DATABASE db_name SET EMERGENCY

Figura 4: Configurar la base de datos en modo de emergencia

NOTA: Si no puede configurar la base de datos en modo de emergencia, pase a la siguiente solución.

Paso 4: Es posible que una base de datos sospechosa no esté dañada. Puede determinar si la base de datos está dañada o no ejecutando el siguiente comando DBCC CHECKDB.

DBCC CHECKDB (‘nombre_base_de_datos’)

Esta sentencia informará de cualquier error de consistencia (si se encuentra) en la base de datos y recomendará ejecutar la opción de nivel mínimo de reparación para arreglar la corrupción.

Antes de iniciar el proceso de reparación, debe poner la base de datos en “Modo de usuario único”. Esto impedirá que otros usuarios realicen cambios en la base de datos durante el proceso de reparación.

Figura 5: Comprobar la coherencia de la base de datos

Paso 5: Ahora, llevemos la base de datos al modo de Usuario Único y retrocedamos las transacciones anteriores ejecutando el siguiente comando:

ALTER DATABASE database_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE

Figura 6: Configurar la base de datos en modo de usuario único

Paso 6: Tome una copia de seguridad completa de los archivos dañados para evitar posibilidades de pérdida de datos.

Paso 7: Después de poner la db en modo SINGLE USER, intente arreglar los errores de consistencia usando la opción REPAIR_REBUILD de DBCC CHECKDB. Esta opción puede reparar rápidamente filas perdidas en índices no agrupados. Además, puede utilizarla para operaciones de reparación que requieren más tiempo, como la reconstrucción de un índice.

DBCC CHECKDB (‘nombre_base_de_datos’, REPAIR_REBUILD)

Sin embargo, si se sugiere REPAIR_ALLOW_DATA_LOSS como nivel mínimo de reparación, ejecute DBCC CHECKDB con la opción de reparación sugerida. La sintaxis es la siguiente:

DBCC CHECKDB (‘nombre_base_de_datos’, REPAIR_ALLOW_DATA_LOSS)

Figura 7: Reparar base de datos con DBCC CHECKDB

Paso 8: Poner la base de datos en modo Multi-Usuario:

ALTER DATABASE database_name SET MULTI_USER

Figura 8: Configurar la base de datos en modo multiusuario

ALTER DATABASE database_name SET MULTI_USER

Paso 9: Actualice el servidor de base de datos.

Después de completar estos pasos, debería poder conectarse a la base de datos. En caso de pérdida de datos, tendrás la copia de seguridad de la base de datos para restaurarla (paso 6).

¿Y si esta solución no funciona?

Si el archivo de base de datos de su servidor se ha dañado gravemente, es posible que los pasos mencionados no consigan revivir la base de datos. En este punto, intente restaurar la base de datos utilizando Stellar Repair for MS SQL.

El software puede reparar errores comunes de corrupción de bases de datos SQL que se producen debido a razones tales como la base de datos en modo sospechoso y varios otros. El software utiliza algoritmos avanzados para reparar y restaurar SQL db de modo sospechoso a estado normal (en línea).

¿Cómo recuperar una base de datos SQL del modo sospechoso con la herramienta Stellar SQL Recovery?

NOTA: Asegúrese de cerrar la instancia del servidor antes de ejecutar el software Stellar Repair for MS SQL.

Paso 1: Descargue, instale y ejecute el software Stellar Repair for MS SQL.

Paso 2: En la ventana Seleccionar base de datos, elija Examinar o Buscar para seleccionar el archivo de base de datos SQL (.mdf) de la base de datos sospechosa.

Figura 9: Seleccionar archivo de base de datos

Paso 3: Una vez seleccionado el archivo, pulse Reparar.

Figura 10- Reparar el archivo seleccionado

NOTA: Asegúrate de desmarcar la casilla “Incluir registros eliminados” si no quieres que se recuperen los registros eliminados.

Paso 4: Vista previa del archivo MDF reparado en busca de objetos de base de datos SQL Server recuperables.

Figura 11: Ventana de vista previa

Paso 5: Haga clic en Guardar en el menú Archivo para guardar el archivo reparado.

Figura 12: Menú Archivo

Paso 6: Desde la ventana Guardar Base de Datos, realice lo siguiente:

Paso 7: Haga clic en Guardar.

Abra SSMS y adjunte la base de datos (que contiene el archivo MDF reparado). Podrá acceder a la base de datos.

Funciones adicionales del programa

El software cuenta con la confianza de los MVP de Microsoft

Conclusión

Este post discute metodos sobre ‘Como recuperar una base de datos MS SQL desde modo sospechoso’. Lo mejor es restaurar la base de datos desde una copia de seguridad en buen estado. Si usted no tiene copia de seguridad, utilice el modo de emergencia para acceder a la base de datos y repararla. Sin embargo, es posible que no pueda revertir las transacciones que estaban activas cuando la base de datos entró en modo sospechoso. Además, utilizar la opción REPAIR_ALLOW_DATA_LOSS como nivel mínimo de reparación puede provocar la pérdida de datos. Una mejor alternativa es utilizar un software especializado de reparación de bases de datos SQL que ayude a reparar y restaurar la base de datos de sospechosa a un estado normal.

Related Post