Когато използвате Microsoft SQL Server за свързване или достъп до повреден MDF файл на база данни, може да се сблъскате с разнообразие от съобщения за грешки, които могат да бъдат объркващи. По-долу ще изброим всички грешки, подредени по честота. За всяка грешка ще описваме симптомите й, ще обясним точната причина и ще предоставим примерни файлове заедно с файловете, поправени от DataNumen SQL Recovery. Това ще ви помогне да разберете по-добре тези грешки. Забележете, че ‘xxx.MDF’ ще представлява името на вашия повреден MDF файл на база данни на SQL Server.
Въз основа на грешките в SQL Server или CHECKDB, съществуват три вида грешки:
-
- Грешки при заделяне: Знаем, че данните в MDF & NDF файлове се заделят като страници. Съществуват и някои специални страници, използвани за управление на заделението, както следва:
Вид на страницата | Описание |
Страница на GAM | Съхраняване на информацията за глобалната алокационна карта(GAM). |
Страница на SGAM | Съхраняване на информация за общата глобална алокационна карта (SGAM). |
Страница на IAM | Съхраняване на информацията за картата за разпределение на индекса (IAM). |
Страница на PFS | Съхраняване на информация за разпределение на PFS. |
Ако някоя от гореспоменатите страници за разпределение имат грешки, или данните, управлявани от тези страници за разпределение, не съответстват на информацията за разпределение, тогава SQL Server или CHECKDB ще отчетат грешки при разпределението.
- Грешки в последователността: За страници , които се използват за съхранение на данни, включително страници с данни и индексни страници, ако SQL Server или CHECKDB открият каквато и да е неконсистентност между съдържанието на страницата и контролната сума, те ще отчетат грешки в последователността.
- Всички други грешки: Може да има други грешки, които не попадат в горните две категории.
- xxxx.mdf не е основен файл с данни. (Microsoft SQL Server, Грешка: 5171)
- Хедърът за файл 'xxxx.mdf' не е валиден хедър на файл с данни. Свойството за РАЗМЕР НА ФАЙЛА е неправилно. (Microsoft SQL Server, Грешка: 5172)
- SQL Server засече грешка, базирана на логическата последователност при входно-изходни операции: неправилна контролна сума
- SQL Server откри логическа грешка, базирана на последователност: скъсана страница
- Ненамерено изтрихте някои записи или някои таблици в базата данни.
SQL Server разполага с вграден инструмент наречен DBCC, който има опции CHECKDB и CHECKTABLE, които могат да помогнат за ремонт на повредената MDF база данни. Въпреки това, за сериозно повредени MDB файлове на база данни, DBCC CHECKDB и CHECKTABLE също ще се провалят.
Съобщения за грешки в последователността, докладвани от CHECKDB:
- SQL Server засече грешка, базирана на логическата последователност при входно-изходни операции: неправилна контролна сума
- Редът в sys.xxx няма съответстващ ред в sys.xxx.
- Грешка в таблицата: ID на обекта ##, ID на индекса ## ще бъде престроен.
- Този индекс на системната таблица не може да бъде възсоздаден.
- Обект ID ##, индекс ID ##, partition ID ##, alloc unit ID ## (тип Неизвестен), page ID (##:560) съдържа неправилно ID на страницата в хедъра на страницата.
Грешки в разпределението, съобщени от CHECKDB:
- Страницата на индекса за разпределение (IAM) е насочена от следващия показател на страницата IAM
- Обхватът (##:##) в базата данни ID ## е маркиран като разделен в GAM, но никой SGAM или IAM не го е разделил.
Всички други грешки, докладвани от CHECKDB:
- Неуспешно: (-#######) Изпълнението на заявката “DBCC CHECKDB(xxxx) WITH NO_INFOMSGS” се провали със следната грешка: “xxxx”..
- Входно-изходната грешка (неправилен ID на страницата) беше установена по време на четене на отместване 0x###### във файл 'xxxx.mdf'.
- Системата не можа да активира достатъчно от базата данни, за да възстанови дневника
- Загуба на данни при ремонт с CHECKDB
- Изглежда, че файлът е бил приключен от операционната система.
- По време на повторителното изпълнение на залогована операция в базата данни 'xxxx' възникна грешка на ID на записа на дневника.