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 5125, livello 24, stato 2, riga 2
File "C: Program FilesMicrosoft 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 al database "Error1" (39: 0) di ristarting. Diagnosticare gli errori di ripristino e correggerli o ripristinarli da un backup noto. Se gli errori non vengono corretti o previsti, contattare il supporto tecnico.

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

Messaggio 5125 l'errore è più vicino un errore di allocazione né un errore di coerenza. Si verifica quando la parte della coda del file MDB viene rimossa, a causa del danneggiamento 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 prova a risolverlo. Se il database non può essere riparato, 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 danneggiato File MDF corretto da DataNumen SQL Recovery
SQL Server 2014 Error8mdf Error8_fixed.mdf

Riferimenti: