sintomo:
Quando si allega un database .MDF in SQL Server, viene visualizzato il seguente messaggio di errore:
SQL Server rilevato un errore I/O basato sulla coerenza logica: checksum errato (previsto: 0x2abc3894; effettivo: 0x2ebe208e). Si è verificato durante una lettura della pagina (1:1) nell'ID database 12 all'offset 0x00000000002000 nel file 'xxx.mdf'. Messaggi aggiuntivi nel file SQL Server il registro degli errori o il registro degli eventi di sistema possono fornire maggiori dettagli. Questa è una grave condizione di errore 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 Libri 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, ad esempio
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 sono memorizzati come pagine, ogni pagina è 8KB. Ogni pagina ha un campo checksum facoltativo.
If SQL Server rileva che i valori di checksum in alcune delle 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 corrotto e risolvere questo errore.
File di esempio:
Esempio di file MDF corrotti che causeranno l'errore:
SQL Server versione | File MDF corrotto | File MDF riparato da DataNumen SQL Recovery |
SQL Server 2005 | Errore4_1.mdf | Errore4_1_fixed.mdf |
SQL Server 2008 R2 | Errore4_2.mdf | Errore4_2_fixed.mdf |
SQL Server 2012 | Errore4_3.mdf | Errore4_3_fixed.mdf |
SQL Server 2014 | Errore4_4.mdf | Errore4_4_fixed.mdf |