Oire:

Käytettäessä DBCC TARKISTUSB with REPAIR_ALLOW_DATA_LOSS parametri vioittuneen .MDF-tietokannan korjaamiseksi, kuten tämä:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

näet seuraavan virhesanoman:

DBCC-tulokset haulle 'xxxx'.
CHECKDB löysi 0 kohdennusvirhettä ja 0 johdonmukaisuusvirhettä tietokannasta 'xxxx'.
Msg 824, taso 24, tila 2, linja 8
SQL Server havaittu looginen johdonmukaisuuteen perustuva I / O-virhe: virheellinen tarkistussumma (odotettavissa: 0xea8a9a2f; todellinen: 0x37adbff8). Se tapahtui tietokannan ID 1 sivun lukemisen (28:39) aikana offsetilla 0x00000000038000 tiedostossa 'xxxx.mdf'. Lisäviestejä SQL Server virheloki tai järjestelmän tapahtumaloki voivat antaa lisätietoja. Tämä on vakava virhetila, joka uhkaa tietokannan eheyttä ja joka on korjattava välittömästi. Suorita täydellinen tietokannan johdonmukaisuuden tarkistus (DBCC CHECKDB). Tämä virhe voi johtua monista tekijöistä; lisätietoja, katso SQL Server Kirjat verkossa.

missä 'xxxx.mdf' on korjattavan vioittuneen MDF-tiedoston nimi. Vaikka CHECKDB sanoo

CHECKDB löysi 0 kohdennusvirhettä ja 0 johdonmukaisuusvirhettä tietokannasta 'xxxx'.

Tämä on edelleen johdonmukaisuusvirhe (Viesti 824) tietokannassa.

Näyttökuva virhesanomasta:

looginen johdonmukaisuuteen perustuva I / O-virhe: virheellinen tarkistussumma

Jos korruptio on vakava, virheilmoituksia tulee jatkuvasti (Viesti 824), kuten alla:

Msg 824, taso 24, tila 6, linja 2 SQL Server havaitsi loogisen johdonmukaisuuteen perustuvan I / O-virheen: virheellinen tarkistussumma (odotettavissa: 0x3d17dfef; todellinen: 0xd81748ef). Se tapahtui sivun (1: 0) lukemisen yhteydessä tietokannan ID 39: ssä offsetilla 0000000000000000 tiedostossa 'xxxx.mdf'. Lisäviestejä SQL Server virheloki tai järjestelmän tapahtumaloki voivat antaa lisätietoja. Tämä on vakava virhetila, joka uhkaa tietokannan eheyttä ja joka on korjattava välittömästi. Suorita täydellinen tietokannan johdonmukaisuuden tarkistus (DBCC CHECKDB). Tämä virhe voi johtua monista tekijöistä; lisätietoja, katso SQL Server Kirjat verkossa.

Msg 824, taso 24, tila 6, linja 4 SQL Server havaitsi loogisen johdonmukaisuuteen perustuvan I / O-virheen: virheellinen tarkistussumma (odotettavissa: 0x3d17dfef; todellinen: 0xd81748ef). Se tapahtui sivun (1: 0) lukemisen yhteydessä tietokannan ID 39: ssä offsetilla 0000000000000000 tiedostossa 'xxxx.mdf'. Lisäviestejä SQL Server virheloki tai järjestelmän tapahtumaloki voivat antaa lisätietoja. Tämä on vakava virhetila, joka uhkaa tietokannan eheyttä ja joka on korjattava välittömästi. Suorita täydellinen tietokannan johdonmukaisuuden tarkistus (DBCC CHECKDB). Tämä virhe voi johtua monista tekijöistä; lisätietoja, katso SQL Server Kirjat verkossa.

missä 'xxxx.mdf' on korjattavan MDF-tiedoston nimi.

Näyttökuva virhesanomasta:

Jos korruptio on vakavampi, saatat nähdä Viesti 7909 seuraa Viesti 824:

DBCC-tulokset haulle 'xxxx'.
CHECKDB löysi 0 kohdennusvirhettä ja 0 johdonmukaisuusvirhettä tietokannasta 'xxxx'.
Msg 824, taso 24, tila 2, linja 8
SQL Server havaitsi loogisen johdonmukaisuuteen perustuvan I / O-virheen: virheellinen tarkistussumma (odotettavissa: 0xcfcd2118; todellinen: 0x6fc599d6). Se tapahtui sivun (1: 1) lukemisen yhteydessä tietokannan ID 39: ssä siirtymässä 0x00000000002000 tiedostossa 'xxxx.mdf'. Lisäviestejä SQL Server virheloki tai järjestelmän tapahtumaloki voivat antaa lisätietoja. Tämä on vakava virhetila, joka uhkaa tietokannan eheyttä ja joka on korjattava välittömästi. Suorita täydellinen tietokannan johdonmukaisuuden tarkistus (DBCC CHECKDB). Tämä virhe voi johtua monista tekijöistä; lisätietoja, katso SQL Server Kirjat verkossa.
Msg 7909, taso 20, tila 1, linja 8
Hätätilan korjaus epäonnistui. Sinun on palautettava varmuuskopiosta.

missä 'xxxx' on tietokannan nimi ja 'xxxx.mdf' on tietokannan fyysisen tiedoston nimi.

Huomautuksia Viesti 7909 on vakava virhe, jota voi esiintyä monissa tilanteissa aina SQL Server luulen, että tietokanta on palautuksen ulkopuolella.

Näyttökuva virhesanomasta:

Tarkka selitys:

Tiedot MDF-tiedostossa tallennetaan muodossa 8 kt sivut. Jokaisella sivulla on valinnainen tarkistussummakenttä.

Jos DBCC CHECKDB -komento löytää tarkistussumman arvot otsikkosivulta, PFS-sivulta ja joiltakin tietosivuilta, eivät kykene korjaamaan ongelmaa, se ilmoittaa virheestä (Viesti 824). Jos Corrupton on vakava, virheitä voi esiintyä jatkuvasti (Viesti 824) tai seuraa toinen virhe (Viesti 7909).

Voit käyttää tuotetta DataNumen SQL Recovery palauttaa tiedot vioittuneesta MDF-tiedostosta ja ratkaista tämä virhe.

Esimerkkitiedostot:

Näyte virheellisistä MDF-tiedostoista, jotka aiheuttavat virheen (Yhden viestin 824 virhe):

SQL Server versio Viallinen MDF-tiedosto MDF-tiedoston korjannut DataNumen SQL Recovery
SQL Server 2014 Virhe1_3.mdf Virhe1_3_korjattu.mdf

Näyte virheellisistä MDF-tiedostoista, jotka aiheuttavat virheen (Jatkuvat Msg 824 -virheet):

SQL Server versio Viallinen MDF-tiedosto MDF-tiedoston korjannut DataNumen SQL Recovery
SQL Server 2014 Virhe1_1.mdf Virhe1_1_fixed.mdf

Näyte virheellisistä MDF-tiedostoista, jotka aiheuttavat virheen (Msg 824 -virhe, jota seuraa Msg 7909 -virhe):

SQL Server versio Viallinen MDF-tiedosto MDF-tiedoston korjannut DataNumen SQL Recovery
SQL Server 2014 Virhe1_2.mdf Virhe1_2_korjattu.mdf

 

Viitteet:

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