Simptomai:

Naudojant DBCC CHECKDB su REPAIR_ALLOW_DATA_LOSS parametras sugadintai .MDF duomenų bazei taisyti, kaip šis:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

matote šį klaidos pranešimą:

DBCC rezultatai pagal „xxxx“.
CHECKDB duomenų bazėje „xxxx“ rado 0 paskirstymo klaidų ir 0 nuoseklumo klaidų.
Msg 824, 24 lygis, 2 būsena, 8 eilutė
SQL Server aptikta logiška nuoseklumu pagrįsta įvesties / išvesties klaida: neteisinga kontrolinė suma (tikėtasi: 0xea8a9a2f; faktinė: 0x37adbff8). Tai įvyko skaitant puslapį (1:28) duomenų bazės ID 39, 0x00000000038000 failo „xxxx.mdf“ poslinkyje. Papildomi pranešimai SQL Server klaidų žurnale arba sistemos įvykių žurnale gali būti pateikta daugiau informacijos. Tai yra rimta klaidos būklė, kelianti grėsmę duomenų bazės vientisumui ir ją reikia nedelsiant ištaisyti. Atlikite išsamų duomenų bazės nuoseklumo patikrinimą (DBCC CHECKDB). Šią klaidą gali sukelti daugybė veiksnių; daugiau informacijos žr SQL Server Knygos internete.

kur „xxxx.mdf“ yra sugadinto MDF failo, kuris yra taisomas, pavadinimas. Nors CHECKDB sako

CHECKDB duomenų bazėje „xxxx“ rado 0 paskirstymo klaidų ir 0 nuoseklumo klaidų.

Tai vis dar yra nuoseklumo klaida (P. 824) duomenų bazėje.

Klaidos pranešimo ekrano kopija:

logiška nuoseklumu pagrįsta įvesties / išvesties klaida: neteisinga kontrolinė suma

Jei korupcija yra rimta, bus nuolat rodomi klaidų pranešimai (P. 824), kaip nurodyta žemiau:

Msg 824, 24 lygis, 6 būsena, 2 eilutė SQL Server aptikta logiška nuoseklumu pagrįsta įvesties / išvesties klaida: neteisinga kontrolinė suma (tikėtasi: 0x3d17dfef; tikrasis: 0xd81748ef). Tai įvyko skaitant duomenų bazės ID 1 puslapį (0: 39) 0000000000000000 faile „xxxx.mdf“. Papildomi pranešimai SQL Server klaidų žurnale arba sistemos įvykių žurnale gali būti pateikta daugiau informacijos. Tai yra rimta klaidos būklė, kelianti grėsmę duomenų bazės vientisumui ir ją reikia nedelsiant ištaisyti. Atlikite išsamų duomenų bazės nuoseklumo patikrinimą (DBCC CHECKDB). Šią klaidą gali sukelti daugybė veiksnių; daugiau informacijos žr SQL Server Knygos internete.

Msg 824, 24 lygis, 6 būsena, 4 eilutė SQL Server aptikta logiška nuoseklumu pagrįsta įvesties / išvesties klaida: neteisinga kontrolinė suma (tikėtasi: 0x3d17dfef; tikrasis: 0xd81748ef). Tai įvyko skaitant duomenų bazės ID 1 puslapį (0: 39) 0000000000000000 faile „xxxx.mdf“. Papildomi pranešimai SQL Server klaidų žurnale arba sistemos įvykių žurnale gali būti pateikta daugiau informacijos. Tai yra rimta klaidos būklė, kelianti grėsmę duomenų bazės vientisumui ir ją reikia nedelsiant ištaisyti. Atlikite išsamų duomenų bazės nuoseklumo patikrinimą (DBCC CHECKDB). Šią klaidą gali sukelti daugybė veiksnių; daugiau informacijos žr SQL Server Knygos internete.

kur „xxxx.mdf“ yra sugadinto MDF failo, kuris yra taisomas, pavadinimas.

Klaidos pranešimo ekrano kopija:

tuščias

Jei korupcija yra sunkesnė, galite pamatyti P. 7909 taip P. 824:

DBCC rezultatai pagal „xxxx“.
CHECKDB duomenų bazėje „xxxx“ rado 0 paskirstymo klaidų ir 0 nuoseklumo klaidų.
Msg 824, 24 lygis, 2 būsena, 8 eilutė
SQL Server aptikta logiška nuoseklumu pagrįsta įvesties / išvesties klaida: neteisinga kontrolinė suma (tikėtasi: 0xcfcd2118; tikroji: 0x6fc599d6). Tai įvyko skaitant puslapį (1: 1) duomenų bazės ID 39, 0x00000000002000 faile „xxxx.mdf“. Papildomi pranešimai SQL Server klaidų žurnale arba sistemos įvykių žurnale gali būti pateikta daugiau informacijos. Tai yra rimta klaidos būklė, kelianti grėsmę duomenų bazės vientisumui ir ją reikia nedelsiant ištaisyti. Atlikite išsamų duomenų bazės nuoseklumo patikrinimą (DBCC CHECKDB). Šią klaidą gali sukelti daugybė veiksnių; daugiau informacijos žr SQL Server Knygos internete.
Msg 7909, 20 lygis, 1 būsena, 8 eilutė
Nepavyko ištaisyti avarinio režimo. Turite atkurti iš atsarginės kopijos.

kur „xxxx“ yra duomenų bazės pavadinimas, o „xxxx.mdf“ - duomenų bazės fizinio failo pavadinimas.

pastabos P. 7909 yra rimta klaida, kuri gali pasitaikyti daugeliu atvejų SQL Server manau, kad duomenų bazės negalima atkurti.

Klaidos pranešimo ekrano kopija:

tuščias

Tikslus paaiškinimas:

Duomenys MDF faile saugomi kaip 8 KB puslapiai. Kiekviename puslapyje yra pasirinktinis kontrolinės sumos laukas.

Jei DBCC CHECKDB komandoje antraštės puslapyje, PFS puslapyje ir kai kuriuose duomenų puslapiuose yra neteisingos kontrolinės sumos vertės ir ji negali išspręsti problemos, ji praneš apie šią klaidą (P. 824). Jei koruptonas yra sunkus, gali būti nuolatinės erozijos (P. 824) arba po kitos klaidos (P. 7909).

Galite naudoti mūsų produktą DataNumen SQL Recovery atkurti duomenis iš sugadinto MDF failo ir išspręsti šią klaidą.

Failų pavyzdžiai:

Sugadintų MDF failų, kurie sukels klaidą, pavyzdžiai („Single Msg 824“ klaida):

SQL Server versija Sugadintas MDF failas MDF failą ištaisė DataNumen SQL Recovery
SQL Server 2014 Klaida1_3.mdf Klaida1_3_fixed.mdf

Sugadintų MDF failų, kurie sukels klaidą, pavyzdžiai (Nuolatinės „Msg 824“ klaidos):

SQL Server versija Sugadintas MDF failas MDF failą ištaisė DataNumen SQL Recovery
SQL Server 2014 Klaida1_1.mdf Klaida1_1_fixed.mdf

Sugadintų MDF failų, kurie sukels klaidą, pavyzdžiai („Msg 824“ klaida ir „Msg 7909“ klaida):

SQL Server versija Sugadintas MDF failas MDF failą ištaisė DataNumen SQL Recovery
SQL Server 2014 Klaida1_2.mdf Klaida1_2_fixed.mdf

 

Nuorodos:

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