Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

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

MSSQL_ERR_5173 1С:Предприятие и СУБД

MSSQL Ошибка 5173: One or more files do not match the primary file — Решение

Обновлено: 25.08.2026 · Официальная документация ↗
  • Сообщение: Msg 5173, Level 16, State 1: One or more files do not match the primary file of the database. If you are attempting to attach a database, retry the operation with the correct files.
  • Сбой выполнения CREATE DATABASE ... FOR ATTACH.
  • Попытка примонтировать файл журнала транзакций LDF или файл данных NDF от другой копии базы данных.
  • Несовпадение внутреннего GUID базы данных и контрольных отметок LSN в заголовках файлов.

1. Проверка состава и соответствия файлов

Ошибка 5173 возникает, если файлы данных и журнала принадлежат разным временным точкам (например, файл .mdf взят из утренней копии, а .ldf — из вечерней).

2. Принудительное пересоздание журнала транзакций (ATTACH_REBUILD_LOG)

Если у вас есть валидный первичный файл .mdf (и все вторичные .ndf), а поврежден или не подходит только лог-файл .ldf, выполните монтирование с перестроением журнала:

CREATE DATABASE [Base1C] ON 
( FILENAME = N'D:\Data\Base1C.mdf' )
FOR ATTACH_REBUILD_LOG;
GO

Или через расширенный синтаксис ATTACH_FORCE_REBUILD_LOG:

CREATE DATABASE [Base1C] ON 
( FILENAME = N'D:\Data\Base1C.mdf' )
FOR ATTACH_FORCE_REBUILD_LOG;
GO

3. Проверка целостности базы после перестроения журнала

ALTER DATABASE [Base1C] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
DBCC CHECKDB (N'Base1C', NOREPAIR) WITH NO_INFOMSGS, ALL_ERRORMSGS;
GO
ALTER DATABASE [Base1C] SET MULTI_USER;
GO
💡 Практика специалистов: После выполнения ATTACH_REBUILD_LOG обязательно запустите полное 'Тестирование и исправление' информационной базы в Конфигураторе 1С с очисткой ссылочной целостности, так как незафиксированные на момент аварии транзакции будут потеряны.

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

Когда нельзя использовать ATTACH_REBUILD_LOG?

Если база данных была остановлена некорректно (Dirty Shutdown) и в журнале LDF остались незафиксированные активные транзакции, перестроение лога может привести к логической несогласованности данных 1С.

Почему нельзя использовать LDF от другой базы с тем же именем?

Каждый файл базы данных содержит в заголовке уникальный Binding GUID и LSN создания. Если GUID журнала не совпадает с GUID файла MDF, SQL Server блокирует запуск для предотвращения разрушения структуры.

Что делать, если база состоит из нескольких файлов данных (MDF + NDF)?

При перестроении лога необходимо перечислить в секции ON абсолютно все файлы данных (.mdf и все .ndf), иначе команда завершится ошибкой.

Как узнать, был ли файл остановлен чисто (Clean Shutdown)?

Проверьте заголовок файла с помощью утилиты командной строки: DBCC CHECKPRIMARYFILE ('D:\Data\Base1C.mdf', 2). Статус 1 в выводе означает Clean Shutdown.

Полезные материалы
Рекомендуем