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 5028, nível 16, estado 4, linha 4
O sistema não pôde ativar o suficiente do banco de dados para reconstruir o log.
Resultados DBCC para 'xxxx'.
CHECKDB encontrou 0 erros de alocação e 0 erros de consistência no banco de dados 'xxxx'.
Msg 7909, nível 20, estado 1, linha 4
O reparo do modo de emergência falhou. Você deve restaurar a partir do backup.

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

Mensagem 5028 erro não é um erro de alocação ou um erro de consistência.

Enquanto Mensagem 7909 é um erro grave que pode ocorrer em muitas situações sempre que SQL Server acho que o banco de dados está além da recuperação.

Captura de tela da mensagem de erro:

Explicação precisa:

A mensagem de erro (Mensagem 5028) parece estar relacionado ao arquivo LOG. No entanto, este é um relatório incorreto. O problema real ainda é causado pela corrupção do banco de dados MDF.

Você pode usar nosso produto DataNumen SQL Recovery para recuperar os dados do arquivo MDF corrompido e resolver este erro.

Arquivos de amostra:

Exemplo de arquivos MDF corrompidos que causarão o Mensagem 5028 erro:

SQL Server versão Arquivo MDF corrompido Arquivo MDF corrigido por DataNumen SQL Recovery
SQL Server 2014 Erro3.mdf Erro3_fixed.mdf