Bases de Datos en Estado Sospechoso (Suspect) ¿Qué significa "Sospechoso"? ¿A que se debe?
Cuando SQL Server detecta problemas de integridad en los archivos de en una base de datos, marca dicha base de datos como Sospechosa (Suspect), de tal modo, que a partir de dicho momento no será posible acceder a dicha base de datos.
Este comportamiento, tiene carácter preventivo, debido a que habitualmente este tipo de problemas de integridad suelen venir motivados por problemas o errores de acceso a disco, y en estos escenarios lo mejor es evitar el acceso a los datos, ya que mantener el acceso a una base de datos en dicho estado sólo puede generar aún más problemas. En este caso (archivo o archivos corruptos), será necesario restaurar una copia de la base de datos, aunque previamente se poner la base de datos en modo de emergencia para realizar una descarga de los datos de las tablas con la esperanza de poder salvar los datos.
Base de Datos en Modo de Emergencia, extracción masiva de datos como último recurso ante corrupción de datos
A continuación se muestra un ejemplo, de cómo quitar una base de datos de Sospechoso y luego establecer el Modo de Emergencia en una base de datos SQL Server 2000/2008.
USE master
GO
EXEC SP_CONFIGURE 'Allow updates', 1
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC SP_RESETSTATUS 'NombreDeBaseDeDatos'
GO
ALTER DATABASE NombreDeBaseDeDatos SET SINGLE_USER;
DBCC CHECKDB('NombreDeBaseDeDatos',REPAIR_REBUILD)
DBCC CHECKDB ( 'NombreDeBaseDeDatos' ,REPAIR_ALLOW_DATA_LOSS)
--En caso de que no funcione lo anterior, probar con lo siguiente
ALTER DATABASE NombreDeBaseDeDatos SET Emergency
DBCC CHECKDB('NombreDeBaseDeDatos',REPAIR_REBUILD)
DBCC CHECKDB( 'NombreDeBaseDeDatos' ,REPAIR_ALLOW_DATA_LOSS)
--Volver a pasar la base de datos a modo multiusuario
ALTER DATABASE 'NombreDeBaseDeDatos'SET MULTI_USER
USE master
GO
EXEC SP_CONFIGURE 'Allow updates', 0
GO
RECONFIGURE WITH OVERRIDE
GO
--REINICIAR EL SERVICIO DEL MOTOR DE BASE DE DATOS