Симптом:

Кога користите DBCC CHECKDB со REPAIR_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“ е името на оштетената MDF-датотека што се поправа. Иако CHECKDB вели

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

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

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

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

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

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

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

каде што „xxxx.mdf“ е името на оштетената MDF-датотека што се поправа.

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

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

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

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

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

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

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

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

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

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

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

Примерок на корумпирани MDF датотеки што ќе предизвикаат грешка(Единечна порака 824 грешка):

SQL Server верзија Оштетена датотека МДФ МДФ датотека фиксирана од DataNumen SQL Recovery
SQL Server 2014 Грешка1_3.mdf Error1_3_fixed.mdf

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

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

Примерок на корумпирани MDF датотеки што ќе предизвикаат грешка(Порака 824, проследена со грешка 7909):

SQL Server верзија Оштетена датотека МДФ МДФ датотека фиксирана од DataNumen SQL Recovery
SQL Server 2014 Грешка1_2.mdf Error1_2_fixed.mdf

 

Референци:

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