Sintomu:

Quandu si usa DBCC CHECKDBREPAIR_ALLOW_DATA_LOSS paràmetru per riparà una basa di dati .MDF corrupta, cum'è questu:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

vede u missaghju d'errore seguente:

Risultati DBCC per 'xxxx'.
CHECKDB hà trovu 0 errori di allocazione è 0 errori di coerenza in a basa di dati 'xxxx'.
Msg 824, Livellu 24, Statu 2, Linea 8
SQL Server hà rilevatu un errore I/O basatu in a coerenza logica: checksum incorrect (aspittatu: 0xea8a9a2f; attuale: 0x37adbff8). Hè accadutu durante una lettura di a pagina (1:28) in a basa di dati ID 39 à l'offset 0x00000000038000 in u schedariu 'xxxx.mdf'. Messaggi supplementari in u SQL Server u logu d'errore o u logu di l'avvenimenti di u sistema pò furnisce più dettagli. Questa hè una cundizione d'errore severu chì minaccia l'integrità di a basa di dati è deve esse corretta immediatamente. Cumplete un cuntrollu di coerenza di a basa di dati cumpleta (DBCC CHECKDB). Stu errore pò esse causatu da parechji fatturi; per più infurmazione, vede SQL Server Libri Online.

induve 'xxxx.mdf' hè u nome di u schedariu MDF corruptu chì hè riparatu. Ancu se CHECKDB dice

CHECKDB hà trovu 0 errori di allocazione è 0 errori di coerenza in a basa di dati 'xxxx'.

Questu hè sempre un errore di coerenza (Ms 824) in a basa di dati.

Screenshot di missaghju d'errore:

Errore I/O basatu à a coerenza logica: checksum incorrect

Se a corruzzione hè severa, allora ci saranu missaghji d'errore cuntinui (Ms 824), cum'è quì sottu:

Msg 824, Livellu 24, Statu 6, Linea 2 SQL Server hà rilevatu un errore I/O basatu in a coerenza logica: checksum incorrect (aspittatu: 0x3d17dfef; attuale: 0xd81748ef). Hè accadutu durante una lettura di a pagina (1: 0) in a basa di dati ID 39 à l'offset 0000000000000000 in u schedariu 'xxxx.mdf'. Messaggi supplementari in u SQL Server u logu d'errore o u logu di l'avvenimenti di u sistema pò furnisce più dettagli. Questa hè una cundizione d'errore severu chì minaccia l'integrità di a basa di dati è deve esse corretta immediatamente. Cumplete un cuntrollu di coerenza di a basa di dati cumpleta (DBCC CHECKDB). Stu errore pò esse causatu da parechji fatturi; per più infurmazione, vede SQL Server Libri Online.

Msg 824, Livellu 24, Statu 6, Linea 4 SQL Server hà rilevatu un errore I/O basatu in a coerenza logica: checksum incorrect (aspittatu: 0x3d17dfef; attuale: 0xd81748ef). Hè accadutu durante una lettura di a pagina (1: 0) in a basa di dati ID 39 à l'offset 0000000000000000 in u schedariu 'xxxx.mdf'. Messaggi supplementari in u SQL Server u logu d'errore o u logu di l'avvenimenti di u sistema pò furnisce più dettagli. Questa hè una cundizione d'errore severu chì minaccia l'integrità di a basa di dati è deve esse corretta immediatamente. Cumplete un cuntrollu di coerenza di a basa di dati cumpleta (DBCC CHECKDB). Stu errore pò esse causatu da parechji fatturi; per più infurmazione, vede SQL Server Libri Online.

induve 'xxxx.mdf' hè u nome di u schedariu MDF corruptu chì hè riparatu.

Screenshot di missaghju d'errore:

Se a corruzzione hè più severa, pudete vede Ms 7909 u seguitu Ms 824:

Risultati DBCC per 'xxxx'.
CHECKDB hà trovu 0 errori di allocazione è 0 errori di coerenza in a basa di dati 'xxxx'.
Msg 824, Livellu 24, Statu 2, Linea 8
SQL Server hà rilevatu un errore I/O basatu in a coerenza logica: checksum incorrectu (aspittatu: 0xcfcd2118; attuale: 0x6fc599d6). Hè accadutu durante una lettura di a pagina (1: 1) in a basa di dati ID 39 à l'offset 0x00000000002000 in u schedariu 'xxxx.mdf'. Messaggi supplementari in u SQL Server u logu d'errore o u logu di l'avvenimenti di u sistema pò furnisce più dettagli. Questa hè una cundizione d'errore severu chì minaccia l'integrità di a basa di dati è deve esse corretta immediatamente. Cumplete un cuntrollu di coerenza di a basa di dati cumpleta (DBCC CHECKDB). Stu errore pò esse causatu da parechji fatturi; per più infurmazione, vede SQL Server Libri Online.
Msg 7909, Livellu 20, Statu 1, Linea 8
A riparazione in modu di emergenza hà fiascatu. Devi restaurà da a copia di salvezza.

induve "xxxx" hè u nome di a basa di dati è "xxxx.mdf" hè u nome di u schedariu fisicu di a basa di dati.

Ppi Ms 7909 hè un errore severu chì pò accade in parechje situazioni ogni volta SQL Server pensate chì a basa di dati hè fora di ricuperazione.

Screenshot di missaghju d'errore:

Spiegazione precisa:

I dati in u schedariu MDF sò almacenati cum'è 8KB Pagine. Ogni pagina hà un campu di checksum opzionale.

Se u cumandamentu DBCC CHECKDB trova i valori di checksum in a pagina di l'intestazione, a pagina PFS è alcune di e pagine di dati ùn sò micca valide è ùn pò micca curregà u prublema, allora signalerà stu errore (Ms 824). Se a corruzzione hè severa, pò esse cuntinui errori (Ms 824) o seguita da un altru errore (Ms 7909).

Pudete aduprà u nostru pruduttu DataNumen SQL Recovery à ritruvà i dati da u schedariu MDF currutti è scioglie stu errore.

File di mostra:

Esempi di fugliali MDF corrotti chì causaranu l'errore (Errore unicu Msg 824):

SQL Server versione File MDF currutti File MDF riparatu da DataNumen SQL Recovery
SQL Server 2014 Error1_3.mdf Error1_3_fixed.mdf

Esempi di fugliali MDF corrotti chì causaranu l'errore (Errori continuu Msg 824):

SQL Server versione File MDF currutti File MDF riparatu da DataNumen SQL Recovery
SQL Server 2014 Error1_1.mdf Error1_1_fixed.mdf

Esempi di fugliali MDF corrotti chì causaranu l'errore (Errore Msg 824 seguitu da errore Msg 7909):

SQL Server versione File MDF currutti File MDF riparatu da DataNumen SQL Recovery
SQL Server 2014 Error1_2.mdf Error1_2_fixed.mdf

 

Da vede:

1. https://docs.microsoft.com/en-us/sql/relational-databases/errors-events/mssqlserver-824-database-engine-error?view=sql-server-ver15