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 conseguiu ativar o banco de dados o suficiente para reconstruir o log.
Resultados de 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 do backup.

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

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

Enquanto Msg 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 (Msg 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 esse erro.

Arquivos de amostra:

Amostra de arquivos MDF corrompidos que causarão o Msg 5028 erro:

SQL Server versão Arquivo MDF corrompido Arquivo MDF corrigido por DataNumen SQL Recovery
SQL Server 2014 Error3.mdf Error3_fixed.mdf