Я предполагаю, что если вы восстанавливаете базу данных, вас не волнуют какие-либо существующие транзакции в этой базе данных. Верно? Если это так, это должно сработать для вас:
А теперь еще об одном пункте, о котором нужно знать. После того, как вы установите базу данных в однопользовательский режим, кто-то другой может попытаться подключиться к базе данных. В случае успеха вы не сможете продолжить восстановление. Это гонка! Я предлагаю запустить все три оператора одновременно.
Установка БД в однопользовательский режим не сработала для меня, но перевод ее в автономный режим, а затем возврат в оперативный режим действительно сработал. Он находится в контекстном меню базы данных, в разделе «Задачи».
Обязательно установите флажок «Отменить все активные подключения» в диалоговом окне.
У меня возникла эта проблема при попытке восстановить базу данных на MS SQL Server 2012.
Вот что сработало для меня :
Мне пришлось сначала запустить команду RESTORE FILELISTONLY ниже для файла резервной копии, чтобы вывести логические имена файлов:
Это отобразит логическое имя и соответствующее физическое имя файлов данных и журнала для базы данных соответственно:
Все, что мне нужно было сделать, это просто заменить логическое имя и соответствующее физическое имя файлов данных и журнала для базы данных соответственно в моем сценарии восстановления базы данных:
И задача восстановления базы данных успешно выполнилась:
Надеюсь, это поможет
- Задайте путь для восстановления файла.
- Нажмите «Параметры» слева.
- Снимите флажок «Сделать резервную копию журнала перед восстановлением»
- Установите флажок — «Закрыть существующие подключения к целевой базе данных».
- Щелкните ОК.
Выполните этот запрос перед восстановлением базы данных:
И этот после восстановления:
Для меня решение:
Установите флажок Перезаписать существующую базу данных (ЗАМЕНИТЬ) на вкладке параметров слева.
Снимите все флажки со всех остальных опций.
Выберите исходную и целевую базы данных.
Используйте следующий сценарий, чтобы найти и закрыть все открытые подключения к базе данных перед восстановлением базы данных.
Надеюсь, это поможет .
Я думаю, вам просто нужно установить базу данных в однопользовательский режим, прежде чем пытаться восстановить, как показано ниже, просто убедитесь, что вы используете master
Я просто перезапустил службу sqlexpress, а затем восстановление завершилось нормально
Перевод исходной базы данных в автономный режим работал для меня
Решение 1. Перезапустите службы SQL и попытайтесь восстановить БД. Решение 2. Перезапустите систему / сервер и попытайтесь восстановить БД. Решение 3. Верните текущую БД, удалите текущую / целевую БД и попытайтесь восстановить БД.
Вот способ восстановления базы данных от производства к разработке:
ПРИМЕЧАНИЕ. Я делаю это с помощью задания SSAS, чтобы ежедневно запускать производственную базу данных в разработку:
Шаг 1. Удалите резервную копию предыдущего дня, находящуюся в разработке:
Шаг 2: Скопируйте производственную базу данных в разработку:
Шаг 3. Восстановите, запустив скрипт .sql.
Код, который находится в файле AE11_Restore.sql:
Я получил эту ошибку, когда на диске не хватало места для восстановления Db. Очистка места решила эту проблему.
Я получил эту ошибку, когда без моего ведома кто-то был подключен к базе данных в другом сеансе SSMS. После того, как я их выписал, восстановление завершилось успешно.
Перевод БД Microsoft в Single-user Mode
В некоторых случаях требуется перевод БД SQL сервер в монопольный режим доступа (однопользовательский режим базы данных, Single-user Mode) это требуется в случаях выполнения операций, внесения изменений в БД или операций восстановления из резервной копии.
Так, например, при попытке восстановить рабочую БД, из резервной копии появится сообщение:
Exclusive access could not be obtained because the database is in use.
Чтобы исправить данное сообщение об ошибке, рекомендуется закрыть все приложения работающие с данной БД, а также вкладки SQL Management Studio, после этого выполнить команду:
где, AdventureWork — это имя базы данных.
Это откатит все текущие транзакции и переведет базу данных в режим работы Single-user Mode. После этого, если в этом же окне запустить операцию восстановления из резервной копии, то ошибка: «Exclusive access. » не повторится.
Для перевода режима работы БД в нормальный многопользовательский режим работы, необходимо выполнить команду:
Ошибка — не удалось получить монопольный доступ, поскольку база данных уже используется.
Я предполагаю, что если вы восстанавливаете базу данных, вам не нужны никакие существующие транзакции в этой базе данных. Правильно? Если да, то это должно сработать для вас:
Теперь нужно знать еще об одном пункте. После того, как вы установите базу данных в однопользовательский режим, кто-то другой может попытаться подключиться к базе данных. В случае успеха вы не сможете продолжить восстановление. Это гонка! Я предлагаю запустить все три оператора одновременно.
Не удалось получить монопольный доступ, так как база данных используется |
Я |
08.02.18 — 12:57
1 — 08.02.18 — 13:00
(0) «Я один ее использовал,»
На момент восстановления в базе не должно быть НИКОГО.
2 — 08.02.18 — 13:00
(0) Поставь в параметрах «Закрыть существующие соединения»
3 — 08.02.18 — 13:05
(1) Это очевидно. Я к тому, что я один использовал, и я-то знаю, что я вышел.
(2) ставил, не помогало
Надмозг
4 — 08.02.18 — 13:08
Снял в параметрах «создать резервную копию заключительного фрагмента журнала до восстановления», и прокатило.
Странно. А если мне нужна эта копия?
-
#1
Здравствуйте! Как восстановить БД SQL server из bak файла? Пишет что не удается восстановить так как БД не в монопольном режиме..
— -Подумал и добавил — —
При восстановлении базы вот такая ошибка:
ЗАГОЛОВОК: Microsoft SQL Server Management Studio
——————————Ошибка восстановления базы данных «MGMT_DB». (Microsoft.SqlServer.Management.RelationalEngineTa sks)
——————————
ДОПОЛНИТЕЛЬНЫЕ СВЕДЕНИЯ:System.Data.SqlClient.SqlError: Не удалось получить монопольный доступ, так как база данных используется. (Microsoft.SqlServer.SmoExtended)
Последнее редактирование модератором: 28.02.2019
В некоторых случаях требуется перевод БД SQL сервер в монопольный режим доступа (однопользовательский режим базы данных, Single-user Mode) это требуется в случаях выполнения операций, внесения изменений в БД или операций восстановления из резервной копии.
Так, например, при попытке восстановить рабочую БД, из резервной копии появится сообщение:
Exclusive access could not be obtained because the database is in use.
Чтобы исправить данное сообщение об ошибке, рекомендуется закрыть все приложения работающие с данной БД, а также вкладки SQL Management Studio, после этого выполнить команду:
USE [master]
GO
ALTER DATABASE [AdventureWork] SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
где, AdventureWork — это имя базы данных.
Это откатит все текущие транзакции и переведет базу данных в режим работы Single-user Mode. После этого, если
в этом же окне
запустить операцию восстановления из резервной копии, то ошибка: «Exclusive access…» не повторится.
Для перевода режима работы БД в нормальный многопользовательский режим работы, необходимо выполнить команду:
USE master;
GO
ALTER DATABASE AdventureWorks
SET MULTI_USER;
GO
Вопрос: Не удалось получить монопольный доступ так как база данных используется
14.06.2023 08:46
100
Решение вопроса:
Такое сообщение можно увидеть если вы пытаетесь восстановить БД в базу к которой есть подключения, в этом случае необходимо установить галочку:
Ограничить доступ к восстанавливаемой базе (WITH RESTRICTED_USER)
Второй вариант решения этой проблемы перевести базу в автономный режим:
Сделать запрос ALTER DATABASE [имя базы данных] SET OFFLINE;
После этого можно выполнять манипуляции с базой
Наши услуги
Все услуги