Проблема
Предположим, что вы пытаетесь восстановить базу данных с помощью параметра ЗАМЕНИТЬ в SQL Server 2017. Если путь к файлу содержит избыточные разделители путей в CREATE DATABASE, вы можете получать сообщения об ошибках, похожие на следующие:
Примечание
- Msg 3634, уровень 16, состояние 1, номер строки
- Операционная система вернула ошибку "32(Процессу не удается получить доступ к файлу, так как он используется другим процессом)". при попытке 'RestoreContainer::ValidateTargetForCreation' для 'FilePath\FileName.mdf'.
- MSG 3156, уровень 16, состояние 8, номер строки
- Невозможно восстановить файл "FileName" до "FilePath\FileName.mdf". Используйте функцию WITH MOVE для определения допустимого расположения файла.
- Msg 3634, уровень 16, состояние 1, номер строки
- Операционная система вернула ошибку "32(Процессу не удается получить доступ к файлу, так как он используется другим процессом)". при попытке 'RestoreContainer::ValidateTargetForCreation' в 'FilePath\FileName.ldf'.
- MSG 3156, уровень 16, состояние 8, номер строки
- Невозможно восстановить файл "FileName" до "FilePath\FileName.ldf". Используйте функцию WITH MOVE для определения допустимого расположения файла.
- MSG 3119, уровень 16, состояние 1, номер строки
- При планировании инструкции RESTORE были выявлены проблемы. В предыдущих сообщениях содержатся подробные сведения.
- MSG 3013, уровень 16, состояние 1, номер строки
- Аварийное завершение операции RESTORE DATABASE.
Временное решение
Возникает эта ошибка при попытке выполнить восстановление с помощью функции ЗАМЕНИТЬ. В качестве обходного решения можно удалить существующую базу данных и выполнить восстановление.
Решение
Эта проблема устранена в следующем накопительном пакете обновления для SQL Server:
Накопительный пакет обновления 4 для SQL Server 2017
Сведения о накопительных обновлениях для SQL Server:
Каждый новый накопительный пакет обновления для SQL Server содержит все исправления и исправления безопасности, которые входили в состав предыдущего накопительного пакета обновления. Ознакомьтесь с последними накопительными пакетами обновления для SQL Server:
Последний накопительный пакет обновления для SQL Server 2017
Дополнительные сведения
Что касается пути, то это не путь к расположению резервной копии, а путь к файлу в заголовке резервного копирования, который можно просмотреть только с помощью заголовков восстановления. Дополнительные сведения см. в разделе Инструкции RESTORE — HEADERONLY (Transact-SQL). Например:
RESTORE HEADERONLY
FROM DISK = N'FilePath\FileName.bak'
WITH NOUNLOAD;
GO
Состояние
Корпорация Майкрософт подтвердила, что это проблема продуктов Microsoft, перечисленных в разделе «Относится к».
Ссылки
Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.