Sintomu:

Quandu si usa DBCC CHECKDBREPAIR_ALLOW_DATA_LOSS paràmetru per riparà una basa di dati .MDF currotta, cusì:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

vede u seguente messaghju d'errore:

Risultati DBCC per 'xxxx'.
CHECKDB hà trovu 0 errori d'allocazione è 0 errori di cunsistenza in a basa di dati 'xxxx'.
Msg 824, Livellu 24, Statu 2, Linea 8
SQL Server rilevatu un errore I / O basatu nantu à a cunsistenza logica: somma di cuntrollu errata (prevista: 0xea8a9a2f; attuale: 0x37adbff8). Hè accadutu durante una lettura di a pagina (1:28) in ID di basa di dati 39 à offset 0x00000000038000 in u file 'xxxx.mdf'. Missaghji addiziunali in u SQL Server u log di errore o u log di l'eventi di u sistema pò furnisce più dettu. Si tratta di una cundizione di errore severa chì minaccia l'integrità di a basa di dati è deve esse curretta subitu. Cumplete un cuntrollu di cunsistenza cumpletu di a basa di dati (DBCC CHECKDB). Stu errore pò esse causatu da parechji fattori; per più infurmazione, vedi SQL Server Libri in Linea.

induve 'xxxx.mdf' hè u nome di u fugliale MDF curruttu chì hè riparatu. Ancu CHECKDB dice

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

Questu hè sempre un errore di cunsistenza (Msg 824) in a basa di dati.

Captura di u messagiu d'errore:

errore I / O basatu nantu à a cunsistenza logica: checksum incorrect

Se a corruzzione hè grave, allora ci saranu messaggi di errore continui (Msg 824), cum'è quì sottu:

Msg 824, Livellu 24, Statu 6, Linea 2 SQL Server hà rilevatu un errore I / O basatu nantu à a cunsistenza logica: somma di cuntrollu errata (prevista: 0x3d17dfef; attuale: 0xd81748ef). Hè accadutu durante a lettura di a pagina (1: 0) in ID di basa di dati 39 à offset 0000000000000000 in u file 'xxxx.mdf'. Missaghji addiziunali in u SQL Server u log di errore o u log di l'eventi di u sistema pò furnisce più dettu. Si tratta di una cundizione di errore severa chì minaccia l'integrità di a basa di dati è deve esse curretta subitu. Cumplete un cuntrollu di cunsistenza cumpletu di a basa di dati (DBCC CHECKDB). Stu errore pò esse causatu da parechji fattori; per più infurmazione, vedi SQL Server Libri in Linea.

Msg 824, Livellu 24, Statu 6, Linea 4 SQL Server hà rilevatu un errore I / O basatu nantu à a cunsistenza logica: somma di cuntrollu errata (prevista: 0x3d17dfef; attuale: 0xd81748ef). Hè accadutu durante a lettura di a pagina (1: 0) in ID di basa di dati 39 à offset 0000000000000000 in u file 'xxxx.mdf'. Missaghji addiziunali in u SQL Server u log di errore o u log di l'eventi di u sistema pò furnisce più dettu. Si tratta di una cundizione di errore severa chì minaccia l'integrità di a basa di dati è deve esse curretta subitu. Cumplete un cuntrollu di cunsistenza cumpletu di a basa di dati (DBCC CHECKDB). Stu errore pò esse causatu da parechji fattori; per più infurmazione, vedi SQL Server Libri in Linea.

induve 'xxxx.mdf' hè u nome di u fugliale MDF curruttu chì hè riparatu.

Captura di u messagiu d'errore:

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

Risultati DBCC per 'xxxx'.
CHECKDB hà trovu 0 errori d'allocazione è 0 errori di cunsistenza in a basa di dati 'xxxx'.
Msg 824, Livellu 24, Statu 2, Linea 8
SQL Server rilevatu un errore I / O basatu nantu à a cunsistenza logica: somma di cuntrollu errata (prevista: 0xcfcd2118; attuale: 0x6fc599d6). Hè accadutu durante una lettura di pagina (1: 1) in ID di basa di dati 39 à u offset 0x00000000002000 in u file 'xxxx.mdf'. Missaghji addiziunali in u SQL Server u log di errore o u log di l'eventi di u sistema pò furnisce più dettu. Si tratta di una cundizione di errore severa chì minaccia l'integrità di a basa di dati è deve esse curretta subitu. Cumplete un cuntrollu di cunsistenza cumpletu di a basa di dati (DBCC CHECKDB). Stu errore pò esse causatu da parechji fattori; per più infurmazione, vedi SQL Server Libri in Linea.
Msg 7909, Livellu 20, Statu 1, Linea 8
A riparazione in modu d'emergenza hà fiascatu. Avete da ristabilisce 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 Msg 7909 hè un errore grave chì pò accade in parechje situazioni ogni volta SQL Server pensu chì a basa di dati sia al di là di a ripresa.

Captura di u messagiu d'errore:

in biancu

Spiegazione precisa:

I dati in u fugliale MDF sò almacenati cum'è 8KB Pagine. Ogni pagina hà un campu di somma di cuntrollu 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 sò invalidi è ùn pò micca corregge u prublema, allora segnalerà questu errore (Msg 824). Se u corrupton hè severu, ci ponu esse erros continui (Msg 824) o seguitatu da un altru errore (Msg 7909).

Pudete aduprà u nostru pruduttu DataNumen SQL Recovery per ricuperà i dati da u fugliale MDF corruptu è risolve questu errore.

Esempii di File:

Esempiu di file MDF currutti chì causeranu l'errore (Solu errore Msg 824):

SQL Server versione File MDF curruttu File MDF riparatu da DataNumen SQL Recovery
SQL Server 2014 Errore1_3.mdf Error1_3_fixed.mdf

Esempiu di file MDF currutti chì causeranu l'errore (Errori continui di Msg 824):

SQL Server versione File MDF curruttu File MDF riparatu da DataNumen SQL Recovery
SQL Server 2014 Errore1_1.mdf Errore1_1_fissatu.mdf

Esempiu di file MDF currutti chì causeranu l'errore (Errore Msg 824 seguitatu da errore Msg 7909):

SQL Server versione File MDF curruttu File MDF riparatu da DataNumen SQL Recovery
SQL Server 2014 Errore1_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