4 jun. 2013

Reparar base de datos SQL Server 2005 o posterior

En algunas ocasiones las base de datos se dañan con fallas de hardware, apagones inesperados del servidor y transacciones interrumpidas incorrectamente. SQL Server provee de sentencias que permiten verificar y reparar una base de datos con inconsistencias o dañada.

Antes de realizar el siguiente procedimiento deberia realizar un respaldo de la base de datos dañada si lo permite SQL Server o hacer una copia física de los archivos.


Paso 1: se coloca la base de datos en modo emergencia y usuario único
Alter Database mibd SET SINGLE_USER
Alter Database mibd SET EMERGENCY


Paso 2: Reparar la base datos
DBCC CHECKDB('mibd', REPAIR_ALLOW_DATA_LOSS)

. Repita este paso hasta que el mensaje sea '0 errores encontrados' para la base de datos
. La sentecia CHECKDB con la opcion REPAIR_ALLOW_DATA_LOSS elimina datos de ser necesario para realizar la reparación o corregir la consistencia de los datos, para una reparación más rápida y sin pérdida de datos pruebe la opcion REPAIR_REBUILD, aunque en ocasiones con esta opción no se repara completamente la base de datos.


Paso 3: Regresar a multiusuario y colocar en linea la base de datos
Alter Database mibd SET ONLINE
Alter Database mibd SET MULTI_USER


Aunque esto permite recuperar la base de datos en la mayoría de los casos, es altamente recomendable tener una estrategia correcta de respaldo o recuperación de la base de datos tales como espejos de discos, servidor reflejado, recuperación completa, etc.

14 comentarios:

Radicalsistemas dijo...

Que tal muy interesante tu tema, ha pasado alrrededor de 12 con el proceso de recuperacion y hasta ahorita no se ha recuperado nada...

Antonio Ortiz dijo...

A que te refieres con que a pasado alrededor de 12?

Alberto Ayala dijo...

hola, me podras ayudar, tengo SQL server 2005 y en la base de datos me sale el signo de admiracion y no tengo respaldo, que hago ? se podra reparar como dices en los pasos? saludos!

Antonio Ortiz dijo...

que tal Alberto, posiblemente solo sea un indicador de advertencia por estatus, te sugiero desconectes la base de datos y vuelvas a conectarla; es posible que eso solucione tu problema.

Si con el procedimiento anterior no se quita el signo, procede a reparar con el procedimiento del articulo

Anónimo dijo...

Amigo, muchas gracias por tener en cuenta los detalles porque los otros bloggs aunque son muy buenos como este, no hacen el comentario de como devolver la bd de emergency a online, y aunque es basico a algunos que no nos ha sucedido seguido esto, nos ayuda grandemente.

saludos.

atte., JARCH

Anónimo dijo...

Como puedo reparar una base de datos que se daño el disco duro y solo pude recuperar el archivo MDF, no la puedo cargar porque falta el archivo LOG.

Antonio Ortiz dijo...

Para restaurar el MDF sin el log, mira esta documentacion:

https://msdn.microsoft.com/es-MX/library/ms174385.aspx

Anónimo dijo...

como se que la base de datos esta corrupta y no se borro? un dia prendi la maquina y la base de datos ya no se conectaba y desde el manager no deja hacer nada, y el archivo de la base de datos pesa 0kb pero hay un log es posible recuperar algo con ese log?

Antonio Ortiz dijo...

oh caray, pues si mide 0k es obvio que se borro o sobreescribieron la base de datos. Si el log tiene un tamaño considerable es posible que la base de datos haya tenido recuperacion completa, mira este tema:

https://msdn.microsoft.com/es-mx/library/ms179451.aspx

Unknown dijo...

saludos, gracias por el aporte: breve, conciso, preciso y completo.

Jessica ramirez garcia dijo...

cComo puedo resolver lo mismo pero con SQL 2014 si me marca error:- version 661. Upgrade the database to the latest version.-

Antonio Ortiz dijo...

Lo siento, aun no tengo instalado SQL 2014

Anónimo dijo...

Buena tarde, tengo un problema, espero que me pueda ayudar
el MSSQLSERVER no se inicia, al revisar en el ERRORLOG
me aparece el siguiente error,
NO SE PUEDE ABRIR LA BASE DE DATOS "MODEL" TIENE LA MARCA SUSPECT, para recuperacion consulte el registro de errores de SQL server

no se ni por donde empezar para reparar el problema, no tengo copia de seguridad de la base de datos

antemano le agradezco, sus comentarios

Antonio Ortiz dijo...

Reinstala SQL Server y adjunta tus bases de datos previamente guardadas despues de desinstalar