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 |