pagina dañada dbcc checkdb

04/03/2009 - 01:51 por op.th | Informe spam
Buenos noches grupo, a ver si alguién especialista en desastres
nucleares me puede ayudar, ya que no sé que más probar. Tengo un cliente
con una base de datos en sql server express 2005 en modo de recuperación
simple y con una página dañada. Dicha página afecta a unas tablas que no
tengo acceso de ninguna manera. He intentado pasar el dbcc checkdb con
el REPAIR_ALLOW_ DATA_LOSS y no me lo arregla. Todo lo que he leído para
recuperar una página se necesita un backup reciente no corrupto, pero no
me la han facilitado porque no la tienen. Si alguién no me ilumina creo
que tengo que crear una nueva bbdd y traspasar todos sus registros,
menos los de esas tablas, claro está, al parecer se puede inicializar
sin problema (menos mal). Hay algún tipo de solución a esto? algún
"truco" que probar??

Muchas gracias anticipadas.

Un saludo

Preguntas similare

Leer las respuestas

#1 Rubén Garrigós
04/03/2009 - 02:58 | Informe spam
Sería de utilidad que mostraras el resultado del DBCC CHECKDB que lanzaste.
¿Hiciste una copia previa de la base de datos antes de lanzarlo? Si no..
quizás ya no hay vuelta atrás.. si algo se estropeó aún más con el DBCC.

Quizás puede que tengas suerte y la página dañada corresponda a un índice
con lo cual podrías probar de hacer un drop y un create del índice para
solucionarlo. Ciertamente ante problemas de corrupción el tener un backup de
donde tirar es lo más recomendable. En principio si tienes una única página
dañada que pertenece a una tabla puede que no te impida el acceso a toda la
tabla. Prueba de realizar una consulta que no implique acceder a todas las
páginas de la tabla (filtra por ejemplo con un TOP(1)) a ver si te devuelve
datos. Quizás puedas llegar a recuperar, filtrando a mano, todos los datos
excepto aquellos que esten en la página dañada. Cuando dices que una página
afecta a unas tablas no me acaba de quedar claro. Una página únicamente
pertenece a un objeto de la base de datos. Quizás tengas más de una página
dañada...

Piensa que milagros no se pueden hacer y con el repair con pérdida de datos
puedes reconstruir ciertas cosas pero si los datos han sido destruidos nada
los va poder devolver a la vida salvo una restauración de un backup.

Rubén Garrigós
Solid Quality Mentors

"op.th" <op.th.esNOSPAMgmail.com> wrote in message
news:
Mostrar la cita
#2 op.th
04/03/2009 - 03:22 | Informe spam
Hola Rubén, muchas gracias por tu respuesta tan rápida. La bbdd la tengo
en mi portatil, es una copia de lo que hay en su servidor y me pasa lo
mismo. Te comento.

Ejecutando esto me da el resultado de abajo...

use master
go
dbcc checkdb (bbdd) with ALL_ERRORMSGS;
go

Mens. 8921, Nivel 16, Estado 1, Línea 1
Comprobación finalizada. Se detectó un error al recopilar hechos.
Posiblemente falta espacio para tempdb o hay una tabla del sistema
incoherente. Vea los errores anteriores.

Mens. 824, Nivel 24, Estado 2, Línea 1
SQL Server detectó un error de E/S de coherencia lógico: suma de
comprobación incorrecta (se esperaba: 0xc7c76e58; se ha obtenido:
0xc7c74e58). Ocurrió durante leer de la página (1:5967) en la base de
datos con Id. 14, desplazamiento 0x00000002e9e000, archivo
'ruta.mdf:MSSQL_DBCC14'. El registro de errores de SQL Server o el
registro de sucesos del sistema puede contener mensajes adicionales con
más detalles. Se trata de una condición de error grave que amenaza a la
integridad de la base de datos y que debe corregirse inmediatamente.
Ejecute una comprobación de coherencia completa de la base de datos
(DBCC CHECKDB). Este error se puede haber originado por muchos factores;
para obtener más información, vea los Libros en pantalla de SQL Server.

Decía que me afecta a más tablas porque son unas cuantas a las que no
puedo acceder. Si le hago un :

DBCC TRACEON (3604);
GO
DBCC PAGE (byl_c01, 1, 5967, 3);
GO

solamente en los dumps me salen índices y estadísticas, pero luego si
recorro todas las tablas para saber el número de registros, hay unas
cuantas tablas que no me deja acceder. No sé...

Muchas gracias de nuevo.



Rubén Garrigós escribió:
Mostrar la cita
#3 Rubén Garrigós
04/03/2009 - 03:47 | Informe spam
Posiblemente el problema es que no está detectando toda la corrupción debido
a un problema con las tablas del sistema lo cual tiene mal arreglo. Si te
fijas el DBCC al principio te dice " Se detectó un error al recopilar
hechos. Posiblemente falta espacio para tempdb o hay una tabla del sistema
incoherente." Imagino que problemas de tempdb no tienes en tu máquina por lo
que me inclino más por lo segundo.

Prueba sacar el DBCC PAGE pero con el parámetro final a 1 en vez de a 3.
Fijate si los slots te dice que son INDEX_RECORD, PRIMARY_RECORD, etc. Si
todo lo que tienes son índices y estadísticas como comentas puedes probar de
cargarte todos los índices y estadísticas de las tablas. Para no hacerlo a
mano puedes tirar del script de:
http://sqlblog.com/blogs/jonathan_k...cript.aspx

Quizás con eso te permita acceder a los datos. La verdad es que pinta mal la
cosa, pero bueno, por intentarlo que no se diga.

Rubén Garrigós
Solid Quality Mentors

"op.th" <op.th.esNOSPAMgmail.com> wrote in message
news:
Mostrar la cita
#4 op.th
04/03/2009 - 04:15 | Informe spam
Son todos primary_record, y debe ser grave porque tampoco me deja
acceder a sysindexes ni a sysstats, rompen al poco tiempo :(.

Como no edite los ficheros en hexadecimal me parece a mi que esto no
tiene solución.

Muchas gracias por todo Rubén.



Rubén Garrigós escribió:
Mostrar la cita
Ads by Google
Search Busqueda sugerida