Reparar base de datos sql server con dbcc checkdb nu canjo sistemas
1. 17/4/2018 Reparar base de datos SQL Server con DBCC CHECKDB - NuCanJo Sistemas
http://www.nucanjosistemas.es/reparar-base-de-datos-sql-server-dbcc-checkdb/ 1/5
Reparar base de datos SQL Server con
DBCC CHECKDB
por nucanjo | Ene 8, 2014 | Reparar Bases de Datos, Scripts, SQL Server, SQL Server 2012 |
6 Comentarios
Anteriormente, vimos que las bases de datos de SQL Server son fiables, pero en ocasiones
pueden romperse o corromperse, de ahí este post.
Este es un ejemplo real que me ha pasado, la base de datos está en estado RECOVERY
PENDING, debido a que hemos intentado restaurar un backup, y el backup está también
dañado.
1.- Al restaurar el backup, al llegar al 100% nos da un error 9100, avisando que es posible
que haya algún índice corrupto y nos dice que debemos pasar un DBCC CHECKDB para ver
y reparar los daños.
2.- Al intentar acceder desde Management Studio a la base de datos que acabamos de
restaurar y que nos ha dado error, al desplegarla sale un mensaje diciendo que la base de
datos no está accesible.
Si nos vamos a las propiedades de la base de datos, vemos que el campo Estado está vacío.
La manera de verlo mediante una consulta de SQL Server sobre la base de datos master.
USE master
GO
SELECT * FROM sys.databases
Seleccionar página
aa
info@nucanjosistemas.es
2. 17/4/2018 Reparar base de datos SQL Server con DBCC CHECKDB - NuCanJo Sistemas
http://www.nucanjosistemas.es/reparar-base-de-datos-sql-server-dbcc-checkdb/ 2/5
Al ejecutar la consulta anterior, salen todas las bases de datos que tiene la instancia de SQL.
Revisamos la línea donde está la base de datos con problema, y en el
campo state_desc vemos el estado de la base de datos dañada, en este caso RECOVERY
PENDING.
3.- Antes de poder hacer nada con la base de datos, ya que no tenemos acceso, para poder
sacar los datos tenemos que cambiar en las Opciones de la base de datos, en Restringir
Acceso, poner la base de datos como SINGLE_USER.
ALTER DATABASE BBDD SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
BEGIN TRANSACTION;
4.- A continuación la cambiamos al modo de EMERGENCY. Recordemos que este modo
permite a usuarios del grupo sysadmin, reparar la base de datos, extraer información,
generar scripts, etc.
–Poner la base de datos BBDD en estado de Emergencia
ALTER DATABASE BBDD SET EMERGENCY
5.- Ejecutaremos un DBCC CHECKDB para reparar errores de la base de datos.
–Checkear y reparar la base de datos
DBCC CHECKDB (‘BBDD’, REPAIR_ALLOW_DATA_LOSS);
En este ejemplo, tenía alguna tabla con errores que reparó automáticamente.
6.- Por último, una vez reparados todos los errores, pondremos la base de datos en estado
MULTI_USER, y la pondremos en producción para que los usuarios puedan utilizarla sin
problema.
–Poner la base de datos BBDD en estado multi usuario para su acceso
ALTER DATABASE BBDD SET MULTI_USER;
Aquí dejo el script completo o las consultas que hay que ejecutar, para reparar una base de
datos dañada o corrupta.
***********************************************
*************** Script completo ***************
–Poner la base de datos BBDD en modo de usuario único
ALTER DATABASE BBDD SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
BEGIN TRANSACTION;
3. 17/4/2018 Reparar base de datos SQL Server con DBCC CHECKDB - NuCanJo Sistemas
http://www.nucanjosistemas.es/reparar-base-de-datos-sql-server-dbcc-checkdb/ 3/5
–Poner la base de datos BBDD en estado de Emergencia
ALTER DATABASE BBDD SET EMERGENCY
–Checkear y reparar la base de datos
DBCC CHECKDB (‘BBDD’, REPAIR_ALLOW_DATA_LOSS);
–Poner la base de datos BBDD en estado multi usuario para su acceso
ALTER DATABASE BBDD SET MULTI_USER;
Información de Microsoft:
Campos de la tabla sys.databases
6 Comentarios
Ones el 07/02/2017 a las 5:20 pm
Buenas tardes.
Mi problemas es un servidor que se ha quedado ko, no tienen backup
(bbdd.bak) y al tratar de adjuntar la bbdd me da error. He creado una bbdd
con el mismo nombre, he parado el servicio sql , he renombrado copiado el
mdf que tenia y consigo tener la bbdd en el motor adjunta con un ldf nuevo.
Problema que realizo todos los pasos y no consigo que corriga
correctamente los datos, es más he intentado realizar un “REPAIR_REBUILD”
y me indica que la bbdd esta en uso y no puedo ejecutar la acción.
Que podria hacer o como podria solucionar la papeleta ¿?.
Un saludo y gracias por su atención.
nucanjo el 07/02/2017 a las 5:27 pm
Buenas tardes, no siempre es posible arreglar las bases de datos de SQL, a
veces es necesario recurrir a herramientas de terceros y ni con esas. Dime si
quieres la versión de SQL Server y el error exacto que te da por si te puedo
ayudar.
Si no quieres dejarlo en el comentario, hazlo a través del formulario de
contacto o desde el correo que viene arriba de la web.
Saludos.
Hector el 07/07/2017 a las 3:43 am
Excelente post, me fue de gran utilidad. Saludos
4. 17/4/2018 Reparar base de datos SQL Server con DBCC CHECKDB - NuCanJo Sistemas
http://www.nucanjosistemas.es/reparar-base-de-datos-sql-server-dbcc-checkdb/ 4/5
Hosting Wordpress
Webs Amigas
El Huertecillo Natural
No Como Huevo
Enlaces Útiles
Antivirus Online Gratis
DNS Report
nucanjo el 07/07/2017 a las 7:28 am
Muchas gracias. Me alegra que te haya servido de ayuda.
Jerry el 13/04/2018 a las 4:44 pm
Buen dia disculpa me podrias ayudar tengo una base de datos que estaba
en SQL 2012 pero alguien cambio a SQL 2016 y asi generaron backup ahora
resulta que ninguna de las dos funciona bien ni en la anterior ni en la nueva
y el backup al restaurarlo infla el log en 2 1/2 gb por lo tanto la base esta
lentisima que puedo hacer gracias
nucanjo el 13/04/2018 a las 5:17 pm
Hola, este problema que te pasa no tiene nada que ver con este tema de
reparar la base de datos. Tampoco entiendo bien el problema que tienes,
tendría que ver la base de datos porque así no puedo ayudarte. Lo siento.
5. 17/4/2018 Reparar base de datos SQL Server con DBCC CHECKDB - NuCanJo Sistemas
http://www.nucanjosistemas.es/reparar-base-de-datos-sql-server-dbcc-checkdb/ 5/5
Escáner Malware Web
Listas Negras
Open Site Explorer
NuCanJo Sistemas - Mantenimiento informático para empresas