sintomo:
Quando si collega un database .MDF in SQL Server, viene visualizzato il seguente messaggio di errore:
SQL Server ha rilevato un errore di I / O basato sulla coerenza logica: checksum non corretto (previsto: 0x2abc3894; effettivo: 0x2ebe208e). Si è verificato durante una lettura della pagina (1: 1) nell'ID database 12 con offset 0x00000000002000 nel file "xxx.mdf". Messaggi aggiuntivi in SQL Server il registro degli errori o il registro degli eventi di sistema possono fornire ulteriori dettagli. Questa è una condizione di errore grave che minaccia l'integrità del database e deve essere corretta immediatamente. Completare un controllo completo della coerenza del database (DBCC CHECKDB). Questo errore può essere causato da molti fattori; Per ulteriori informazioni, vedere SQL Server Documentazione in linea (Microsoft SQL Server, Errore: 824)
dove "xxx.mdf" è il nome del file MDF a cui si accede.
A volte il database .MDF può essere collegato correttamente. Tuttavia, quando si tenta di eseguire un'istruzione SQL, come
SELEZIONA * DA [TestDB]. [Dbo]. [Test_table_1]
riceverai anche il messaggio di errore precedente.
Screenshot del messaggio di errore:
Spiegazione precisa:
I dati nel file MDF vengono memorizzati come pagine, ogni pagina è 8 KB. Ogni pagina ha un campo checksum opzionale.
If SQL Server rileva che i valori di checksum in alcune pagine di dati non sono validi, quindi segnalerà questo errore.
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'errore:
SQL Server versione | File MDF danneggiato | File MDF corretto da DataNumen SQL Recovery |
SQL Server 2005 | Error4_1.mdf | Error4_1_fixed.mdf |
SQL Server 2008 R2 | Error4_2.mdf | Error4_2_fixed.mdf |
SQL Server 2012 | Error4_3.mdf | Error4_3_fixed.mdf |
SQL Server 2014 | Error4_4.mdf | Error4_4_fixed.mdf |