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 5125, livello 24, stato 2, riga 2
File 'C: ProgrammiMicrosoft SQL ServerMSSQL12.SQL2014MSSQLDATAError1.mdf' sembra essere stato troncato dal sistema operativo. La dimensione prevista è 5120 KB ma la dimensione effettiva è 5112 KB.
Messaggio 3414, livello 21, stato 1, riga 2
Si è verificato un errore durante il ripristino che ha impedito la risoluzione del database 'Error1' (39:0).tarting. Diagnostica gli errori di ripristino e correggili o ripristina da un backup noto e funzionante. Se gli errori non vengono corretti o non previsti, contattare il supporto tecnico.

dove 'Error1' è il nome del database MDF corrotto che viene riparato.

Messaggio 5125 L'errore non è né un errore di allocazione né un errore di coerenza. Si verifica quando la parte della coda del file MDB viene rimossa, a causa della corruzione dei dati.

Screenshot del messaggio di errore:

Spiegazione precisa:

Quando la parte della coda del file MDB viene rimossa, CHECKDB riporterà Messaggio 5125 errore e provare a risolverlo. Se il database non può essere riparato, allora produrrà Messaggio 3414 errore.

In realtà il database può anche essere recuperato, se si utilizza il nostro prodotto DataNumen SQL Recovery per fare il compito.

File di esempio:

SQL Server versione File MDF corrotto File MDF riparato da DataNumen SQL Recovery
SQL Server 2014 Error8mdf Error8_fixed.mdf

Riferimenti: