Sintoma:
Ao usar DBCC CHECKDB com REPAIR_ALLOW_DATA_LOSS parâmetro para reparar um banco de dados .MDF corrompido, como este:
DBCC CHECKDB(xxxx, 'REPAIR_ALLOW_DATA_LOSS')
você vê a seguinte mensagem de erro:
Msg 5125, nível 24, estado 2, linha 2
Arquivo 'C:Arquivos de programasMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf' parece ter sido truncado pelo sistema operacional. O tamanho esperado é 5120 KB, mas o tamanho real é 5112 KB.
Msg 3414, nível 21, estado 1, linha 2
Ocorreu um erro durante a recuperação, impedindo que o banco de dados 'Error1' (39:0) fosse restarting. Diagnostique os erros de recuperação e corrija-os ou restaure a partir de um backup válido. Se os erros não forem corrigidos ou esperados, entre em contato com o Suporte técnico.
onde 'Erro1' é o nome do banco de dados MDF corrompido que está sendo reparado.
Mensagem 5125 erro não é mais um erro de alocação nem um erro de consistência. Ocorre quando parte da cauda do arquivo MDB é removida, devido à corrupção de dados.
Captura de tela da mensagem de erro:
Explicação precisa:
Quando a parte da cauda do arquivo MDB é removida, CHECKDB irá relatar Mensagem 5125 erro e tente corrigi-lo. Se o banco de dados não puder ser corrigido, ele produzirá Mensagem 3414 erro.
Na verdade, o banco de dados também pode ser recuperado, se usar nosso produto DataNumen SQL Recovery para fazer a tarefa.
Arquivos de amostra:
SQL Server versão | Arquivo MDF corrompido | Arquivo MDF corrigido por DataNumen SQL Recovery |
SQL Server 2014 | Error8.mdf | Error8_fixo.mdf |
Referências: