Jun 24

Recuperar Base de Datos sin fichero ldf y con el log corrupto en #SQLServer

La pregunta arriba indicada me la hizo Ricardo Chavez por Facebook. Como todavía no se me habia presentado no he podido hacer el artículo respectivo.

Yo,  al ser MVP, le oriente en que paginas podía encontrar la solución simplemente.

A cambio le pedí que me hiciera un word con la resolucióon y que el texto lo publicaría en mi blog Aquí va como resolvio su problema.

Captura

Hoy nos encontramos con un servidor de base de datos que se quemó la tarjeta madre y no teníamos respaldo de la base de datos por lo que debíamos recuperarlas por los archivos .mdf pero el log estaba corrupto por lo que arrojo en primera instancia el siguiente error después de pasar el siguiente script.

CREATE DATABASE MyDatabase ON (FILENAME = 'E:\Database\MyDatabase.mdf')

FOR ATTACH

Captura

Seguidamente tratamos de adjuntar la base de datos reconstruyendo el log con el script

CREATE DATABASE MyDatabase ON (FILENAME = 'E:\Database\MyDatabase.mdf')

FOR ATTACH_REBUILD_LOG

Pero nos dio el siguiente error

Captura

La solución fue la siguiente:

1-. Crear base de datos desde el Management Studio.

2-. Pasarla a estado de emergencia.

ALTER DATABASE BBDD SET EMERGENCY

3-. Para los servicios de SQL

4-. Copiar y pegar el archivo .mdf en la carpeta data de la instancia correspondiente (Reemplazar el que se creó por el que tenemos originalmente).

5-. Inicial los servicios SQL

6-. Ponemos la base de datos como Single User

ALTER DATABASE BBDD SET SINGLE_USER

7-. Hacemos un CHECKDB

DBCC CHECKDB (BBDD, REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS

8-. Dejamos la base de dato BBDD como multiusuario y accesible

ALTER DATABASE BBDD SET MULTI_USER

Bueno, espero que os valga esta solución cundo se os presente el caso.

Y como no,invitaros a  pasar por el grupo de facebook:

https://www.facebook.com/groups/juankartips/

Captura

y os ayudaré a resolver sus dudas u a orientars como hacerlo. No hacer los deberes por ti