Когато използвате Microsoft SQL Server за да прикачите или получите достъп до повреден файл с база данни на MDF, ще видите различни съобщения за грешка, които може да ви объркат. Затова тук ще се опитаме да изброим всички възможни грешки, сортирани според честотата им. За всяка грешка ще опишем нейния симптом, ще обясним точната му причина и ще дадем примерни файлове, както и файла, фиксиран от нашия DataNumen SQL Recovery, за да можете да ги разберете по-добре. По-долу ще използваме „xxx.MDF“, за да изразим вашата повреда SQL Server Име на файла на базата данни на MDF.
Базиран на 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“ не е валиден заглавен файл на базата данни. Свойството FILE SIZE е неправилно. (Microsoft SQL Server, Грешка: 5172)
- SQL Server откриха логически базирана на последователност I / O грешка: неправилна контролна сума
- SQL Server откриха логическа последователност, базирана на I / O грешка: разкъсана страница
- Изтривате някои записи или някои таблици в базата данни по погрешка.
SQL Server има вграден инструмент, наречен DBCC, която има CHECKDB и ПРОВЕРКА опции, които могат да помогнат за поправяне на повредена база данни MDF. За сериозно повредени файлове с база данни на MDB обаче DBCC CHECKDB и ПРОВЕРКА също ще се провали.
Грешки в последователността, докладвани от CHECKDB:
- SQL Server откриха логически базирана на последователност I / O грешка: неправилна контролна сума
- Редът в sys.xxx няма съответстващ ред в sys.xxx.
- Грешка в таблицата: Object ID ##, index ID ## ще бъде възстановен.
- Този индекс на системната таблица не може да бъде пресъздаден.
- Идентификатор на обект ##, индекс ID ##, идентификатор на дял ##, ID на разпределителния блок ## (тип Неизвестен), идентификатор на страница (##: 560) съдържа неправилен идентификатор на страница в заглавката на страницата.
Грешки при разпределението, съобщени от CHECKDB:
- Страницата на картата за разпределение на индекса (IAM) се посочва от следващия указател на страницата на IAM
- Обхватът (##: ##) в идентификатора на базата данни ## е маркиран, разпределен в GAM, но нито един SGAM или IAM не го е разпределил.
Всички други грешки, съобщени от CHECKDB:
- Неуспешно: (- #######) Изпълнението на заявката „DBCC CHECKDB (xxxx) WITH NO_INFOMSGS“ не бе успешно със следната грешка: „xxxx“.
- I / O грешка (лош идентификатор на страница), открита по време на четене при отместване 0x ###### във файл 'xxxx.mdf'.
- Системата не можа да активира достатъчно база данни, за да възстанови дневника
- Загуба на данни при ремонт с CHECKDB
- Изглежда, че файлът е съкратен от операционната система.
- По време на повторно извършване на регистрирана операция в базата данни 'xxxx' възникна грешка в идентификатора на регистрационния запис.