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 |