Не удалось получить монопольный доступ к файлу
Обновлено: 07.07.2024
Я предполагаю, что если вы восстанавливаете базу данных, вас не волнуют какие-либо существующие транзакции в этой базе данных. Верно? Если это так, это должно сработать для вас:
А теперь еще об одном пункте, о котором нужно знать. После того, как вы установите базу данных в однопользовательский режим, кто-то другой может попытаться подключиться к базе данных. В случае успеха вы не сможете продолжить восстановление. Это гонка! Я предлагаю запустить все три оператора одновременно.
Установка БД в однопользовательский режим не сработала для меня, но перевод ее в автономный режим, а затем возврат в оперативный режим действительно сработал. Он находится в контекстном меню базы данных, в разделе "Задачи".
Обязательно установите флажок «Отменить все активные подключения» в диалоговом окне.
У меня возникла эта проблема при попытке восстановить базу данных на MS SQL Server 2012.
Вот что сработало для меня :
Мне пришлось сначала запустить команду RESTORE FILELISTONLY ниже для файла резервной копии, чтобы вывести логические имена файлов:
Это отобразит логическое имя и соответствующее физическое имя файлов данных и журнала для базы данных соответственно:
Все, что мне нужно было сделать, это просто заменить логическое имя и соответствующее физическое имя файлов данных и журнала для базы данных соответственно в моем сценарии восстановления базы данных:
И задача восстановления базы данных успешно выполнилась:
Надеюсь, это поможет
- Задайте путь для восстановления файла.
- Нажмите "Параметры" слева.
- Снимите флажок "Сделать резервную копию журнала перед восстановлением"
- Установите флажок - «Закрыть существующие подключения к целевой базе данных».
- Щелкните ОК.
Выполните этот запрос перед восстановлением базы данных:
И этот после восстановления:
Для меня решение:
Установите флажок Перезаписать существующую базу данных (ЗАМЕНИТЬ) на вкладке параметров слева.
Снимите все флажки со всех остальных опций.
Выберите исходную и целевую базы данных.
Используйте следующий сценарий, чтобы найти и закрыть все открытые подключения к базе данных перед восстановлением базы данных.
Надеюсь, это поможет .
Я думаю, вам просто нужно установить базу данных в однопользовательский режим, прежде чем пытаться восстановить, как показано ниже, просто убедитесь, что вы используете master
Я просто перезапустил службу sqlexpress, а затем восстановление завершилось нормально
Перевод исходной базы данных в автономный режим работал для меня
Решение 1. Перезапустите службы SQL и попытайтесь восстановить БД. Решение 2. Перезапустите систему / сервер и попытайтесь восстановить БД. Решение 3. Верните текущую БД, удалите текущую / целевую БД и попытайтесь восстановить БД.
Вот способ восстановления базы данных от производства к разработке:
ПРИМЕЧАНИЕ. Я делаю это с помощью задания SSAS, чтобы ежедневно запускать производственную базу данных в разработку:
Шаг 1. Удалите резервную копию предыдущего дня, находящуюся в разработке:
Шаг 2: Скопируйте производственную базу данных в разработку:
Шаг 3. Восстановите, запустив скрипт .sql.
Код, который находится в файле AE11_Restore.sql:
Я получил эту ошибку, когда на диске не хватало места для восстановления Db. Очистка места решила эту проблему.
Я получил эту ошибку, когда без моего ведома кто-то был подключен к базе данных в другом сеансе SSMS. После того, как я их выписал, восстановление завершилось успешно.
Читайте также: