Когда вы используете Microsoft SQL Server чтобы прикрепить или получить доступ к поврежденному файлу базы данных MDF, вы увидите различные сообщения об ошибках, которые могут вас немного запутать. Поэтому здесь мы постараемся перечислить все возможные ошибки, отсортированные по частоте их возникновения. Для каждой ошибки мы опишем ее симптом, объясним точную причину и дадим образцы файлов, а также файл, исправленный нашим DataNumen SQL Recovery, чтобы вы могли лучше их понять. Ниже мы будем использовать "xxx.MDF" для обозначения вашей испорченной SQL Server Имя файла базы данных MDF.
на основании SQL Server или сообщения об ошибках CHECKDB, есть три типа ошибок, которые вызывают сбой:

    1. Ошибки распределения: Мы знаем, что данные в файлах MDF и NDF распределяются как страниц. И есть несколько специальных страниц, которые используются для управления распределением, а именно:
Тип страницы Описание
Страница GAM Хранить информацию о глобальной карте распределения (GAM).
Страница SGAM Хранить информацию о совместно используемой глобальной карте распределения (SGAM).
Страница IAM Информация о карте распределения индекса (IAM).
Страница PFS Хранить информацию о распределении PFS.

Если на любой из вышеуказанных страниц распределения есть ошибки или данные, управляемые этими страницами распределения, несовместимы с информацией распределения, тогда SQL Server или CHECKDB сообщит ошибки распределения.

  • Ошибки согласованности: Для того, чтобы получить страниц которые используются для хранения данных, включая страницы данных и страницы индекса, если SQL Server или CHECKDB обнаружат несоответствие между содержимым страницы и контрольной суммой, тогда они сообщат ошибки согласованности.
  • Все остальные ошибки: Могут быть и другие ошибки, не попадающие в две вышеуказанные категории.

 

SQL Server имеет встроенный инструмент под названием DBCC, который имеет CHECKDB и КОНТРОЛЬНАЯ ТАБЛИЦА варианты, которые могут помочь восстановить поврежденную базу данных MDF. Однако для сильно поврежденных файлов базы данных MDB DBCC CHECKDB и КОНТРОЛЬНАЯ ТАБЛИЦА тоже выйдет из строя.

CHECKDB сообщает об ошибках согласованности:

CHECKDB сообщает об ошибках распределения:

Все другие ошибки, о которых сообщает CHECKDB: