KB4057087 - ИСПРАВЛЕНО: невозможно восстановить базу данных с помощью параметра ЗАМЕНИТЬ, если путь к файлу содержит избыточные разделители путей в SQL Server 2017

Применяется к
SQL Server 2017 Developer SQL Server 2017 Enterprise SQL Server 2017 Enterprise Core

Проблема

Предположим, что вы пытаетесь восстановить базу данных с помощью параметра ЗАМЕНИТЬ в 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, перечисленных в разделе «Относится к».

Ссылки

Узнайте о терминологии, используемой корпорацией Майкрософт для описания обновлений программного обеспечения.