sintomo:

Quando si usa DBCC CHECKDB a REPAIR_ALLOW_DATA_LOSS parametro per riparare un database .MDF danneggiato, come questo:

DBCC CHECKDB (xxxx, "REPAIR_ALLOW_DATA_LOSS")

viene visualizzato il seguente messaggio di errore:

Messaggio 5028, livello 16, stato 4, riga 4
Il sistema non è stato in grado di attivare una quantità sufficiente del database per ricostruire il registro.
Risultati DBCC per "xxxx".
CHECKDB ha trovato 0 errori di allocazione e 0 errori di coerenza nel database "xxxx".
Messaggio 7909, livello 20, stato 1, riga 4
La riparazione in modalità di emergenza non è riuscita. È necessario eseguire il ripristino dal backup.

dove "xxxx" è il nome del database MDF danneggiato da riparare.

Messaggio 5028 l'errore non è né un errore di allocazione né un errore di coerenza.

Mentre Messaggio 7909 è un grave errore che può verificarsi in molte situazioni ogni volta SQL Server penso che il database sia oltre il recupero.

Screenshot del messaggio di errore:

Spiegazione precisa:

Il messaggio di errore (Messaggio 5028) sembra essere correlato al file LOG. Tuttavia, questo è un errore di dichiarazione. Il problema effettivo è ancora causato dal danneggiamento del database MDF.

Puoi usare il nostro prodotto DataNumen SQL Recovery per recuperare i dati dal file MDF danneggiato e risolvere questo errore.

File di esempio:

Esempio di file MDF corrotti che causeranno l'estensione Messaggio 5028 errore:

SQL Server versione File MDF danneggiato File MDF corretto da DataNumen SQL Recovery
SQL Server 2014 Errore3.mdf Error3_fixed.mdf