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

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

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

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'.