Центр Диагностики & База Системных Ошибок

Решения для Windows Server, Active Directory, 1С, СУБД, Linux, Cisco, MikroTik и IP-телефонии.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, баз данных и сетевого оборудования. Перед выполнением действий обязательно создайте резервную копию. При отсутствии необходимой квалификации обратитесь к ИТ-специалистам.

MSSQL Ошибка 5172: Header for file is not a valid database header — Решение

Обновлено: 25.08.2026  ·  Официальная база знаний
  • Сообщение: Msg 5172, Level 16, State 15: The header for file 'D:\Data\Base1C.mdf' is not a valid database header. The PageVerify header property is incorrect.
  • Служба SQL Server не может примонтировать базу при старте.
  • База данных переходит в статус SUSPECT.
  • Повреждение сигнатуры страницы (Magic Number / Signature 0x01 или 0x00 в заголовке блока).

1. Анализ причины повреждения

Ошибка 5172 означает, что первые 8192 байта файла данных (страница 0) повреждены, заполнены нулями или мусорными байтами в результате аварии питания накопителя, сбоя контроллера RAID или воздействия вирусов-шифровальщиков.

2. Проверка дисковой подсистемы на аппаратные сбои

Откройте журнал событий Windows (System Event Log) и проверьте наличие ошибок драйверов дисков (disk, ntfs, volsnap, iaStorA):

Get-WinEvent -FilterHashtable @{LogName='System'; ProviderName=@('disk','Ntfs')} -MaxEvents 50

3. Восстановление базы из резервной копии (Основной метод)

RESTORE DATABASE [Base1C] 
FROM DISK = N'D:\Backup\Base1C_LastValid.bak' 
WITH REPLACE, RECOVERY;
GO

4. Аварийный метод подмены заголовка (Для экспертов)

  1. Создайте новую пустую базу Base1C_Temp с абсолютно идентичными именами файлов и размерами файловых групп.
  2. Остановите службу SQL Server: net stop MSSQLSERVER.
  3. Скопируйте первые 8192 байта из нового файла Base1C_Temp.mdf в поврежденный Base1C.mdf с помощью hex-редактора.
  4. Запустите службу и переведите базу в аварийный режим для выполнения DBCC CHECKDB (..., REPAIR_ALLOW_DATA_LOSS).
Практический опыт инженера: Для высоконагруженных баз 1С настройте регулярное выполнение задания DBCC CHECKDB с опцией PHYSICAL_ONLY каждую ночь. Это позволит обнаружить деградацию дисковых массивов до того, как будет поврежден критический заголовок файла.

Частые вопросы (FAQ)

Можно ли восстановить базу при ошибке 5172 без бэкапа?

Штатными средствами SQL Server — нет. Только с помощью ручной реконструкции заголовка в hex-редакторе или специализированных программ парсинга сырых страниц данных (MDF Recovery Tools).

Почему PageVerify property становится некорректным?

Потому что контрольная сумма сектора, записанная на странице, не сходится с рассчитанной контрольной суммой прочитанного блока данных, либо заголовок был частично перезаписан нулями (Torn Page).

Влияет ли антивирус на повреждение заголовков MDF?

Да, некоторые антивирусы при попытке заблокировать или очистить файл могут повреждать блокировки дескрипторов, что приводит к рассинхронизации кэша записи ОС и порче заголовка.

Как проверить остальные базы на сервере после ошибки 5172?

Немедленно запустите полную проверку всех баз: EXEC sp_MSforeachdb 'DBCC CHECKDB (?) WITH NO_INFOMSGS, ALL_ERRORMSGS;'