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

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

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

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

MSSQL Ошибка 5180: Could not open file for file number in database — Решение

Обновлено: 25.08.2026 · Официальная документация ↗
  • Сообщение: Msg 5180, Level 16, State 1: Could not open file 'D:\Data\Base1C_2.ndf' for file number 3 in database 'Base1C'.
  • База данных переходит в состояние Recovery Pending или падает при обращении к определенной таблице 1С.
  • Один из дисковых томов, на котором располагалась дополнительная файловая группа, отключился или вышел из строя.

1. Определение отсутствующего файла и файловой группы

Выполните запрос к системному каталогу master_files, чтобы сопоставить номер файла из ошибки с его физическим путем:

SELECT 
    database_id, file_id, name, physical_name, state_desc 
FROM sys.master_files 
WHERE database_id = DB_ID('Base1C');
GO

2. Восстановление доступности дискового тома

  • Проверьте подключение iSCSI/FC таргетов, состояние сетевых дисков или букв томов Windows в оснастке diskmgmt.msc.
  • Убедитесь, что служба SQL Server имеет права доступа к восстановившемуся диску:
icacls "D:\Data" /grant "NT SERVICE\MSSQLSERVER":(OI)(CI)F

3. Перевод базы данных в Online

ALTER DATABASE [Base1C] SET ONLINE;
GO

4. Восстановление отдельного файла из бэкапа (File Restore)

Если диск с файлом .ndf полностью уничтожен, восстановите только поврежденный файл из резервной копии:

RESTORE DATABASE [Base1C] 
FILE = N'Base1C_Secondary' 
FROM DISK = N'D:\Backup\Base1C_Full.bak' 
WITH NORECOVERY;

RESTORE LOG [Base1C] 
FROM DISK = N'D:\Backup\Base1C_Log.trn' 
WITH RECOVERY;
GO
💡 Практика специалистов: Если вы используете многофайловую структуру базы 1С (MDF + множество NDF), бэкап журнала транзакций защищает всю базу целиком, но восстановление отдельного сбойного файла возможно только при условии непрерывной цепочки бэкапов лога (Full Recovery Model).

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

Что означает file number в тексте ошибки 5180?

Это внутренний системный идентификатор файла (file_id) в таблице sys.database_files. File_id 1 — это всегда первичный MDF, file_id 2 — основной журнал LDF, file_id >= 3 — вторичные NDF файлы или дополнительные логи.

Можно ли удалить потерянный NDF файл, если таблица в нем не нужна?

Удалить файл из базы (DBCC SHRINKFILE EMPTYFILE / ALTER DATABASE REMOVE FILE) можно только в том случае, если база находится в статусе Online и файл полностью доступен для переноса страниц.

Почему 1С размещает данные в нескольких файлах NDF?

Разнесение таблиц по нескольким файлам NDF на разные физические диски применяется в High-Load конфигурациях 1С для параллелизации операций ввода-вывода и изоляции тяжелых таблиц (например, регистров накопления).

Как перевести базу в аварийный режим при отсутствии вторичного файла?

Выполните команду: ALTER DATABASE [Base1C] SET EMERGENCY; Это позволит получить доступ к сохранившимся данным в первичной файловой группе PRIMARY.

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