Síntoma:
Ao usar DBCC CHECKDB con REPAIR_ALLOW_DATA_LOSS parámetro para reparar unha base de datos .MDF corrupta, como este:
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 que o sistema operativo truncou. 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, impedindo que a base de datos "Error1" (39:0) se restarting. Diagnostica os erros de recuperación e corrixaos ou restaura a partir dunha copia de seguranza coñecida. Se non se corrixen nin se esperan erros, póñase en contacto co soporte técnico.
onde "Error1" é o nome da base de datos MDF corrupta que se está a reparar.
Mensaxe 5125 o erro é máis un erro de asignación nin un erro de consistencia. Ocorre cando se elimina a parte da cola do ficheiro MDB, debido á corrupción dos 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 utiliza o noso produto DataNumen SQL Recovery para facer a tarefa.
Ficheiros de mostra:
SQL Server versión | Ficheiro MDF danado | Arquivo MDF corrixido por DataNumen SQL Recovery |
SQL Server 2014 | Erro8.mdf | Erro8_fixo.mdf |
Referencias: