сімптом:

пры выкарыстанні DBCC CHECKDB з REPAIR_ALLOW_DATA_LOSS параметр для выпраўлення пашкоджанай базы дадзеных .MDF, напрыклад:

DBCC CHECKDB (хххх, 'REPAIR_ALLOW_DATA_LOSS')

вы бачыце наступнае паведамленне пра памылку:

DBCC вынікі для "хххх".
CHECKDB знайшоў 0 памылак размеркавання і 0 памылак паслядоўнасці ў базе дадзеных "хххх".
Msg 824, узровень 24, штат 2, лінія 8
SQL Server выяўлена памылка ўводу-высновы на аснове лагічнай паслядоўнасці: няправільная кантрольная сума (чакаецца: 0xea8a9a2f; фактычная: 0x37adbff8). Гэта адбылося падчас чытання старонкі (1:28) у ідэнтыфікатары базы дадзеных 39 са зрушэннем 0x00000000038000 у файле "xxxx.mdf". Дадатковыя паведамленні ў SQL Server часопіс памылак альбо часопіс сістэмных падзей можа даць больш падрабязную інфармацыю. Гэта сур'ёзная памылка, якая пагражае цэласнасці базы дадзеных і павінна быць неадкладна выпраўлена. Прайдзіце поўную праверку ўзгодненасці базы дадзеных (DBCC CHECKDB). Гэтая памылка можа быць выклікана мноствам фактараў; для атрымання дадатковай інфармацыі гл SQL Server Кнігі ў Інтэрнэце.

дзе 'xxxx.mdf' - імя пашкоджанага файла MDF, які падлягае рамонту. Хаця CHECKDB кажа

CHECKDB знайшоў 0 памылак размеркавання і 0 памылак паслядоўнасці ў базе дадзеных "хххх".

Гэта ўсё яшчэ памылка ўзгодненасці (Паведамленне 824) у базе дадзеных.

Здымак экрана паведамлення пра памылку:

памылка ўводу-выводу на аснове лагічнай паслядоўнасці: няправільная кантрольная сума

Калі карупцыя сур'ёзная, будуць пастаянна паведамляцца пра памылкі (Паведамленне 824), як паказана ніжэй:

Msg 824, узровень 24, штат 6, лінія 2 SQL Server выяўлена памылка ўводу-высновы на аснове лагічнай паслядоўнасці: няправільная кантрольная сума (чакаецца: 0x3d17dfef; фактычная: 0xd81748ef). Гэта адбылося падчас чытання старонкі (1: 0) у ідэнтыфікатары базы дадзеных 39 са зрушэннем 0000000000000000 у файле "xxxx.mdf". Дадатковыя паведамленні ў SQL Server часопіс памылак альбо часопіс сістэмных падзей можа даць больш падрабязную інфармацыю. Гэта сур'ёзная памылка, якая пагражае цэласнасці базы дадзеных і павінна быць неадкладна выпраўлена. Прайдзіце поўную праверку ўзгодненасці базы дадзеных (DBCC CHECKDB). Гэтая памылка можа быць выклікана мноствам фактараў; для атрымання дадатковай інфармацыі гл SQL Server Кнігі ў Інтэрнэце.

Msg 824, узровень 24, штат 6, лінія 4 SQL Server выяўлена памылка ўводу-высновы на аснове лагічнай паслядоўнасці: няправільная кантрольная сума (чакаецца: 0x3d17dfef; фактычная: 0xd81748ef). Гэта адбылося падчас чытання старонкі (1: 0) у ідэнтыфікатары базы дадзеных 39 са зрушэннем 0000000000000000 у файле "xxxx.mdf". Дадатковыя паведамленні ў SQL Server часопіс памылак альбо часопіс сістэмных падзей можа даць больш падрабязную інфармацыю. Гэта сур'ёзная памылка, якая пагражае цэласнасці базы дадзеных і павінна быць неадкладна выпраўлена. Прайдзіце поўную праверку ўзгодненасці базы дадзеных (DBCC CHECKDB). Гэтая памылка можа быць выклікана мноствам фактараў; для атрымання дадатковай інфармацыі гл SQL Server Кнігі ў Інтэрнэце.

дзе 'xxxx.mdf' - імя пашкоджанага файла MDF, які падлягае рамонту.

Здымак экрана паведамлення пра памылку:

Калі карупцыя больш сур'ёзная, вы можаце ўбачыць Паведамленне 7909 варта Паведамленне 824:

DBCC вынікі для "хххх".
CHECKDB знайшоў 0 памылак размеркавання і 0 памылак паслядоўнасці ў базе дадзеных "хххх".
Msg 824, узровень 24, штат 2, лінія 8
SQL Server выяўлена памылка ўводу-высновы на аснове лагічнай паслядоўнасці: няправільная кантрольная сума (чакаецца: 0xcfcd2118; фактычная: 0x6fc599d6). Гэта адбылося падчас чытання старонкі (1: 1) у ідэнтыфікатары базы дадзеных 39 са зрушэннем 0x00000000002000 у файле 'xxxx.mdf'. Дадатковыя паведамленні ў SQL Server часопіс памылак альбо часопіс сістэмных падзей можа даць больш падрабязную інфармацыю. Гэта сур'ёзная памылка, якая пагражае цэласнасці базы дадзеных і павінна быць неадкладна выпраўлена. Прайдзіце поўную праверку ўзгодненасці базы дадзеных (DBCC CHECKDB). Гэтая памылка можа быць выклікана мноствам фактараў; для атрымання дадатковай інфармацыі гл SQL Server Кнігі ў Інтэрнэце.
Msg 7909, узровень 20, штат 1, лінія 8
Не ўдалося адрамантаваць аварыйны рэжым. Вы павінны аднавіць яго з рэзервовай копіі.

дзе 'xxxx' - імя базы дадзеных, а 'xxxx.mdf' - імя фізічнага файла базы дадзеных.

Нататка Паведамленне 7909 з'яўляецца сур'ёзнай памылкай, якая можа паўстаць у многіх сітуацыях SQL Server думаю, што база дадзеных не падлягае аднаўленню.

Здымак экрана паведамлення пра памылку:

Дакладнае тлумачэнне:

Дадзеныя ў файле MDF захоўваюцца як 8 КБ старонак. Кожная старонка мае неабавязковае поле кантрольнай сумы.

Калі каманда DBCC CHECKDB знаходзіць значэнні кантрольнай сумы на старонцы загалоўка, старонцы PFS і некаторых старонках дадзеных, несапраўдныя, і яна не можа выправіць праблему, яна паведаміць пра гэтую памылку (Паведамленне 824). Калі карупцыя сур'ёзная, могуць быць пастаянныя памылкі (Паведамленне 824) альбо наступная памылка (Паведамленне 7909).

Вы можаце выкарыстоўваць наш прадукт DataNumen SQL Recovery каб аднавіць дадзеныя з пашкоджанага файла MDF і выправіць гэтую памылку.

Прыклады файлаў:

Прыклад пашкоджаных файлаў MDF, якія прывядуць да памылкі (Адзінкавая памылка паведамлення 824):

SQL Server версія Пашкоджаны файл MDF Файл MDF выпраўлены DataNumen SQL Recovery
SQL Server 2014 Памылка1_3.mdf Памылка1_3_fixed.mdf

Прыклад пашкоджаных файлаў MDF, якія прывядуць да памылкі (Бесперапынныя памылкі паведамлення 824):

SQL Server версія Пашкоджаны файл MDF Файл MDF выпраўлены DataNumen SQL Recovery
SQL Server 2014 Памылка1_1.mdf Памылка1_1_выпраўлена.mdf

Прыклад пашкоджаных файлаў MDF, якія прывядуць да памылкі (Памылка паведамлення 824, за якім ідзе памылка паведамлення 7909):

SQL Server версія Пашкоджаны файл MDF Файл MDF выпраўлены DataNumen SQL Recovery
SQL Server 2014 Памылка1_2.mdf Памылка1_2_fixed.mdf

 

Спасылкі:

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