sintomo:

Quando si usa DBCC CHECKDB con REPAIR_ALLOW_DATA_LOSS parametro per riparare un database .MDF corrotto, 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 di database per ricostruire il registro.
Risultati DBCC per 'xxxx'.
CHECKDB ha rilevato 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 corrotto che viene riparato.

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 pensare che il database sia irrecuperabile.

Screenshot del messaggio di errore:

Spiegazione precisa:

Il messaggio di errore (Messaggio 5028) sembra essere correlato al file LOG. Tuttavia, questa è una segnalazione errata. Il vero problema è ancora causato dalla corruzione del database MDF.

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

File di esempio:

Esempio di file MDF corrotti che causeranno il Messaggio 5028 errore:

SQL Server versione File MDF corrotto File MDF riparato da DataNumen SQL Recovery
SQL Server 2014 Errore3.mdf Errore3_risolto.mdf