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 programa Microsoft 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 o banco de dados 'Error1' (39: 0) de restarting. Diagnostique os erros de recuperação e corrija-os ou restaure a partir de um backup em bom estado. Se os erros não forem corrigidos ou esperados, entre em contato com o Suporte Técnico.

onde 'Error1' é o nome do banco de dados MDF corrompido que está sendo reparado.

Msg 5125 erro não é nem um erro de alocação nem um erro de consistência. Ocorre quando a 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 Msg 5125 erro e tente corrigi-lo. Se o banco de dados não puder ser corrigido, ele produzirá Msg 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_fixed.mdf

Referências: