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

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

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

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

MSSQL Error 3110: Restore plan includes file already used by database — Решение

Обновлено: 25.08.2026 · Официальная документация ↗

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

  • Сообщение: The proposed RESTORE plan includes file '%ls' which is already used by database '%ls' (Severity 16, State 1).
  • Отказ восстановления тестовой копии 1С на том же сервере, где работает рабочая база.
  • Блокировка восстановления при несовпадении целевых путей размещения файлов.

1. Просмотр логических имен и исходных путей файлов в бэкапе

RESTORE FILELISTONLY 
FROM DISK = N'D:\Backups\Production_Full.bak';

2. Проверка физических путей файлов существующих баз на сервере

SELECT 
    DB_NAME(database_id) AS DatabaseName,
    name AS LogicalName,
    physical_name AS PhysicalPath
FROM sys.master_files
WHERE physical_name LIKE '%YourConflictFileName%';

3. Восстановление с явным переназначением путей через WITH MOVE

Задайте уникальные имена целевых физических файлов для новой базы данных:

RESTORE DATABASE [Production_Copy_Test]
FROM DISK = N'D:\Backups\Production_Full.bak'
WITH 
    MOVE N'Production_Data'     TO N'E:\MSSQL\Data\Production_Copy_Test.mdf',
    MOVE N'Production_Log'      TO N'E:\MSSQL\Data\Production_Copy_Test_log.ldf',
    MOVE N'Production_Data_NDF' TO N'E:\MSSQL\Data\Production_Copy_Test_2.ndf', -- если файлов несколько
    REPLACE,
    STATS = 5;

4. Проверка прав доступа службы SQL Server к целевой папке

Убедитесь, что каталог E:\MSSQL\Data\ существует и учетная запись MSSQLSERVER имеет права на запись.

💡 Практика специалистов: При создании скриптов автоматического клонирования продуктовых баз 1С в тестовые среды всегда динамически формируйте уникальные имена файлов на основе GUID или текущей даты.

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

Почему SSMS выдает эту ошибку при восстановлении через GUI?

В графическом интерфейсе SSMS на вкладке 'Files' (Файлы) по умолчанию подставляются оригинальные пути из бэкапа. Установите флажок 'Relocate all files to folder' или вручную скорректируйте пути к файлам.

Что произойдет, если выполнить Restore с одинаковыми путями без WITH MOVE?

SQL Server заблокирует операцию ошибкой 3110, чтобы предотвратить катастрофическую перезапись и повреждение работающей производственной базы данных.

Как узнать логические имена файлов без SSMS?

Используйте T-SQL команду RESTORE FILELISTONLY FROM DISK = 'путь_к_бэкапу'. Колонка 'LogicalName' содержит точные имена для секции WITH MOVE.

Можно ли перенести лог транзакций на отдельный быстрый NVMe диск при Restore?

Да, достаточно указать путь к новому NVMe диску в строке MOVE N'Logical_Log_Name' TO N'F:\FastLog\database_log.ldf'.

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