Siendo el Administrador de Base de Datos se tiene en mente que es casi imposible que una base de datos se corrompa usando un Gestor de Base de Datos «tan bueno» como el SQL Server de Microsoft, pero ésto suele suceder…
Normalmente ocurre por problemas físicos (como por ejemplo: corte en el suministro de energía, problemas con los discos duros, etc.), lo más recomendable y sano es restablecerlo desde una copia de seguridad de la base de datos, pero si en caso no la tenemos o todavía es posible recuperarlo -o repararlo- sólo hacen falta ejecutar unas consultas, veamos paso a paso:
1. Desde el Microsoft SQL Server Management Studio, ejecutamos la siguiente consulta:
USE master GO sp_configure 'allow updates', 1 GO RECONFIGURE WITH OVERRIDE GO
Esto nos permitirá trabajar (modificar, alterar, reparar, …) las base de datos.
Continuamos con siguiente consulta:
Alter Database TU_BASE Set Single_user;
Esto nos permitirá que sólo exista un único usuario trabajando en la base de datos, osea nosotros, para que otros no se conecten y exista problemas después –más vale prevenir, que luego lamentar.
2. Ahora ejecutamos la siguiente consulta para poder comprobar su estado y repararlo.
Alter Database TU_BASE Set Emergency
Una vez terminado la consulta, se puede comprobar que se haya ejecutado correctamente, mirando en la imagen de anterior con la siguiente; en la base de datos paso de un Icono de «Advertencia» a un estado de color «Anaranjado», si todo salió bien continuamos…
3. Una vez en el estado de Emergencia, ejecutamos las siguientes consultas una por una:
DBCC checkdb (NAME_DATABASE, REPAIR_REBUILD); DBCC checkdb (NAME_DATABASE, REPAIR_ALLOW, DATA_LOSS);
Este proceso puede demorar un poco de tiempo, dependerá de cuanto este dañado y de que tamaño (Mb, Gb, …) sea la base de datos, una vez terminado podemos continuar.
Una buena práctica será: Guardar en un TXT del estado del LOG de las consultas, para después analizar a detalle si existió pérdida de información y si es posible comprobar la consistencia de las mismas.
4. Hasta aquí ya se han reparado las base de datos, ahora falta regresar la base de datos al estado original, para que todos puedan usarlo, haciendo la siguiente consulta:
Alter Database TU_BASE Set MULTIUSER USE master GO SP_Configure 'allow updates', 0 GO RECONFIGURE WITH OVERRIDE GO
Listo, con estas siete consultas en estos 4 pasos, tendremos restablecidos nuestra base de datos, lista para operar nuevamente.
Adicional: Es necesario se examine rigurosamente el LOG de las consultas para evitar sorpresas en el futuro, en caso te ha servido este articulo déjame un comentario como agradecimiento y/o alguna otra consulta que quieras hacerme.
Si nos bloqueamos en algún punto probar a usar esto:
USE master
GO
EXEC SP_CONFIGURE ‘Allow updates’,1
GO
RECONFIGURE WITH OVERRIDE
GO
EXEC sp_resetstatus ‘BBDD_Suspect’
GO
— “Reiniciar la instancia de SQL Server”
USE master
GO
EXEC SP_CONFIGURE ‘Allow updates’,0
GO
RECONFIGURE WITH OVERRIDE
GO
Me sirvio de mucho . Gracias por ser generoso con sus conocimientos.
muchas gracias excelente post…
Tengo una base de datos suspect pero solo me deja ponerla modo emergencia y de alli ya pasa no deja correr ningun otro query que puedo hacer o que procede de antemano gracias si me pueden ayudar
Excelente tutorial, pero si la base de datos sigue con problemas como solucionarlo?, es decir, en su momento se hizo todos los pasos como indicas en el tutorial pero a la larga el log de la base de datos se daño exageradamente como recuperarlo?