Симптом:

Кога користите DBCC CHECKDB со ПОПРАВКА_ALLOW_DATA_LOSS параметар за поправка на оштетена база на податоци .MDF, како ова:

DBCC CHECKDB (xxxx, 'REPAIR_ALLOW_DATA_LOSS')

ја гледате следнава порака за грешка:

Резултати од DBCC за 'xxxx'.
CHECKDB откри 0 грешки во распределбата и 0 грешки во конзистентноста во базата на податоци „xxxx“.
Msg 824, Ниво 24, состојба 2, линија 8
SQL Server откри логичка I / O грешка базирана на конзистентност: неточна проверка на збирот (се очекува: 0xea8a9a2f; реално: 0x37adbff8). Тоа се случи при читање на страницата (1:28) во базата на податоци ID 39 при поместување 0x00000000038000 во датотеката 'xxxx.mdf'. Дополнителни пораки во SQL Server дневник за грешки или дневник на системски настани може да дадат повеќе детали. Ова е тешка состојба на грешка што го загрозува интегритетот на базата на податоци и мора веднаш да се коригира. Завршете ја целосната проверка на постојаноста на базата на податоци (DBCC CHECKDB). Оваа грешка може да биде предизвикана од многу фактори; за повеќе информации, видете SQL Server Книги на Интернет.

каде што „xxxx.mdf“ е име на оштетената датотека МДФ што се поправа. Иако CHECKDB вели

CHECKDB откри 0 грешки во распределбата и 0 грешки во конзистентноста во базата на податоци „xxxx“.

Ова е сепак грешка во конзистентност (MSG 824) во базата на податоци.

Снимка на екранот од порака за грешка:

I / O грешка заснована на логичка конзистентност: неправилна проверка на збирот

Ако корупцијата е сериозна, тогаш ќе има континуирани пораки за грешки (MSG 824), како што е подолу:

Msg 824, Ниво 24, состојба 6, линија 2 SQL Server откри логичка I / O грешка заснована на конзистентност: неточна проверка на збирот (се очекува: 0x3d17dfef; реално: 0xd81748ef). Тоа се случи при читање на страницата (1: 0) во ID-то на базата на податоци 39 на поместување 0000000000000000 во датотеката 'xxxx.mdf'. Дополнителни пораки во SQL Server дневник за грешки или дневник на системски настани може да дадат повеќе детали. Ова е тешка состојба на грешка што го загрозува интегритетот на базата на податоци и мора веднаш да се коригира. Завршете ја целосната проверка на постојаноста на базата на податоци (DBCC CHECKDB). Оваа грешка може да биде предизвикана од многу фактори; за повеќе информации, видете SQL Server Книги на Интернет.

Msg 824, Ниво 24, состојба 6, линија 4 SQL Server откри логичка I / O грешка заснована на конзистентност: неточна проверка на збирот (се очекува: 0x3d17dfef; реално: 0xd81748ef). Тоа се случи при читање на страницата (1: 0) во ID-то на базата на податоци 39 на поместување 0000000000000000 во датотеката 'xxxx.mdf'. Дополнителни пораки во SQL Server дневник за грешки или дневник на системски настани може да дадат повеќе детали. Ова е тешка состојба на грешка што го загрозува интегритетот на базата на податоци и мора веднаш да се коригира. Завршете ја целосната проверка на постојаноста на базата на податоци (DBCC CHECKDB). Оваа грешка може да биде предизвикана од многу фактори; за повеќе информации, видете SQL Server Книги на Интернет.

каде што „xxxx.mdf“ е име на оштетената датотека МДФ што се поправа.

Снимка на екранот од порака за грешка:

Ако корупцијата е потешка, може да видите MSG 7909 следи MSG 824:

Резултати од DBCC за 'xxxx'.
CHECKDB откри 0 грешки во распределбата и 0 грешки во конзистентноста во базата на податоци „xxxx“.
Msg 824, Ниво 24, состојба 2, линија 8
SQL Server откри логичка I / O грешка базирана на конзистентност: неточна проверка на збирот (се очекува: 0xcfcd2118; реална: 0x6fc599d6). Тоа се случи при читање на страницата (1: 1) во ID-то на базата на податоци 39 при неутрализирање 0x00000000002000 во датотеката 'xxxx.mdf'. Дополнителни пораки во SQL Server дневник за грешки или дневник на системски настани може да дадат повеќе детали. Ова е тешка состојба на грешка што го загрозува интегритетот на базата на податоци и мора веднаш да се коригира. Завршете ја целосната проверка на постојаноста на базата на податоци (DBCC CHECKDB). Оваа грешка може да биде предизвикана од многу фактори; за повеќе информации, видете SQL Server Книги на Интернет.
Msg 7909, Ниво 20, состојба 1, линија 8
Поправањето на режимот за итни случаи не успеа. Мора да се вратите од резервната копија.

каде што „xxxx“ е име на базата на податоци и „xxxx.mdf“ е физичко име на базата на податоци.

забелешка MSG 7909 е тешка грешка што може да се појави во многу ситуации кога и да е SQL Server сметаат дека базата на податоци е надвор од обновување.

Снимка на екранот од порака за грешка:

празно

Прецизно објаснување:

Податоците во датотеката МДФ се зачувуваат како 8KB страници. Секоја страница има изборно поле за контролна сума.

Ако командата DBCC CHECKDB ги најде вредностите на контролниот збир на страницата со заглавието, страницата PFS и некои од страниците со податоци не се валидни и не може да го поправи проблемот, тогаш таа ќе ја пријави оваа грешка (MSG 824) Ако корупцијата е сериозна, може да има континуирани грешки (MSG 824) или проследено со друга грешка (MSG 7909).

Можете да го користите нашиот производ DataNumen SQL Recovery за да ги вратите податоците од оштетената датотека МДФ и да ја решите оваа грешка.

Примерок датотеки:

Пример за оштетени датотеки МДФ што ќе предизвикаат грешка (Грешка во единечна МСГ 824):

SQL Server верзија Корумпирана датотека МДФ МДФ-датотека поправена од DataNumen SQL Recovery
SQL Server 2014 Грешка1_3.mdf Грешка1_3_fixed.mdf

Пример за оштетени датотеки МДФ што ќе предизвикаат грешка (Континуирани грешки Msg 824):

SQL Server верзија Корумпирана датотека МДФ МДФ-датотека поправена од DataNumen SQL Recovery
SQL Server 2014 Грешка1_1.mdf Грешка1_1_фикс.mdf

Пример за оштетени датотеки МДФ што ќе предизвикаат грешка (Грешка на MSG 824, проследена со грешка Msg 7909):

SQL Server верзија Корумпирана датотека МДФ МДФ-датотека поправена од 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