Síntoma:

Ao usar DBCC CHECKDB con REPAIR_ALLOW_DATA_LOSS parámetro para reparar unha base de datos .MDF corrupta, como esta:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

ves a seguinte mensaxe de erro:

Msg 5125, nivel 24, estado 2, liña 2
Ficheiro 'C: Program FilesMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf 'parece ser truncado polo sistema operativo. O tamaño esperado é de 5120 KB, pero o tamaño real é de 5112 KB.
Msg 3414, nivel 21, estado 1, liña 2
Produciuse un erro durante a recuperación, evitando que a base de datos "Erro1" (39: 0) restarting. Diagnostique os erros de recuperación e corrixaos ou restaure desde unha boa copia de seguridade coñecida. Se non se corrixen ou esperan erros, contacte co servizo de asistencia técnica.

onde "Erro1" é o nome da base de datos MDF corrupta que se está reparando.

Mensaxe 5125 o erro é menor e non é un erro de consistencia. Ocorre cando se elimina a parte da cola do ficheiro MDB, debido á corrupción de datos.

Captura de pantalla da mensaxe de erro:

Explicación precisa:

Cando se elimina a parte da cola do ficheiro MDB, CHECKDB informará Mensaxe 5125 erro e intente solucionalo. Se a base de datos non se pode arranxar, producirase Mensaxe 3414 erro.

En realidade, a base de datos tamén se pode recuperar se se usa o noso produto DataNumen SQL Recovery para facer a tarefa.

Ficheiros de mostra:

SQL Server versión Ficheiro MDF corrupto Arquivo MDF corrixido por DataNumen SQL Recovery
SQL Server 2014 Erro8.mdf Erro8_fixed.mdf

Referencias: