6 - Recuperar Datos de Base de Datos Sospechosa

Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

Índice del artículo

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

 


 


USE master
GO

EXEC SP_RESETSTATUS 'NombreDeBaseDeDatos'

GO

EXEC SP_CONFIGURE 'Allow updates', 1
GO

RECONFIGURE WITH OVERRIDE
GO

UPDATE sysdatabases
SET status = status | -32768
WHERE name='NombreDeBaseDeDatos'
GO

EXEC SP_CONFIGURE 'Allow updates', 0
GO

RECONFIGURE WITH OVERRIDE
GO

 

Luego de correr este script la base de datos queda en modo de emergencia, solo lectura y se puede realizar la recuperación de los datos haciendo un copiado de datos por DTS a otra base de datos. Una vez que se hayan recuperado los datos es conveniente realizar la revisión de campos para volver a establecer las claves de las tablas ya que por medio del DTS solo se copian tablas y datos. 

logo_edydsi_negro_gordo_pequeo01.png
Empresa de Desarrollo Y Distribución de
Sistemas de Información
Avda. Bruno Guggiari #2063
Asunción, Paraguay
info@edydsi.com
29672172
Hoy
Ayer
Esta semana
Semana anterior
Este mes
Mes anterior
2239
21482
162114
22741102
49902
769446
© Copyright 2024 EDYDSI SA.

Buscar