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: