восстановить сервер sql из файла .bak Не удалось получить монопольный доступ
Я также пробовал с помощью мастера восстановления с тем же результатом.
Не удалось получить монопольный доступ, поскольку база данных уже используется.
5 ответов
Способ 1
Способ 2
Не нужно писать какой-либо запрос, чтобы решить эту проблему. У меня была одна и та же проблема несколько раз, и я решил ее следующим методом: когда вы восстанавливаете базу данных
- Перейдите на вкладку «Параметры» в окне «Восстановить базу данных».
- Проверить (перезаписать существующую базу данных (С ЗАМЕНОЙ))
- Проверить (закрыть существующие соединения с целевой базой данных)
- Затем нажмите ОК
Начинается восстановление базы данных.
Любой, у кого были проблемы, перечисленные выше, и ни один из советов не работает. Просто отключите резервное копирование Taillog в разделе «Параметры».
Если установить (или оставить) этот параметр включенным, будет предпринята попытка получить хвостовой журнал самой исходной базы данных (даже если источником для восстановления является просто файл). Поэтому, если исходная база данных используется (что обычно происходит, если вы делаете копию рабочей БД), восстановление завершается ошибкой.
У меня возникла эта проблема, когда я пытался восстановить производственную резервную копию на сервере разработки, на котором уже была база данных. Я хотел восстановить как копию, что я и сделал, изменив имя целевой базы данных, но проблема была на самом деле с файлами. По умолчанию он пытался перезаписать файлы, которые уже были там. Я исправил проблему, проверив «Переместить все файлы в папку» на странице «Файлы» диалогового окна восстановления и выбрав новый каталог, чтобы не было конфликтов файлов.
Ни одно из вышеперечисленных решений не сработало для меня. После многих проб и ошибок я остановил обозреватель SQL Server, после чего восстановление завершилось успешно.
Не удалось получить монопольный доступ, потому что база данных уже используется

Восстановление может произойти только в том случае, если база данных не имеет к ней никаких подключений (кроме вашей). Самый простой способ запустить всех пользователей на MS SQL Server:
Теперь вы можете безнаказанно выполнить восстановление. Убедитесь, что вы вернули его в многопользовательский режим, когда закончите восстановление:
ответ дан 14 авг.
Моя база данных находится в D:\SQL\RRDB.mdf , Мне нужно заменить MyDB с полным путем или просто RRDB.mdf ? — Мохаммад Дайян
Я создал базу данных Single_user, но столкнулся с той же проблемой! — Ахмед Ахмед
Вы должны поставить «С немедленным откатом» в конце оператора; который немедленно откатывает все ожидающие транзакции при разрыве соединений. Простая настройка для одного пользователя по умолчанию будет держать соединения открытыми до завершения транзакции. — КитС
У меня не получилось. Я получаю ту же ошибку «Не удалось получить эксклюзивный доступ . » — А.
Таким образом, я написал метод ниже для восстановления моей базы данных,
Я на правильном пути?
ответ дан 29 окт ’10, 03:10

в принципе хорошо выглядит. Не могу запустить, но вопиющих ошибок нет. Имейте в виду, что «установить одного пользователя с немедленным откатом» закроет все соединения (кроме того, которое выполняет команду) и откатит все транзакции. — Дейв
-
С НЕМЕДЛЕННЫМ ОТКАТОМ — этот вариант не ждет для завершения транзакций он просто начинает откат всех открытых транзакций
С ОТКАТОМ ПОСЛЕ nnn — эта опция откатит все открытые транзакции после ожидания nnn секунд для завершения открытых транзакций. В нашем примере мы указываем, что процесс должен подождать 30 секунд перед откатом любых открытых транзакций.
После появления RESTRICTED_USER указано, только члены db_owner, dbcreator или sysadmin роли могут использовать базу данных. MULTI_USER возвращает базу данных в нормальное рабочее состояние.
2-й способ: используя ssms 2008 R2, мы можем сделать то же самое
- щелкните правой кнопкой мыши свойство базы данных
- перейдите к параметрам -> последний раздел с заголовком состояние
- изменение Ограничить доступ в ОДИН ПОЛЬЗОВАТЕЛЬ
- ответьте «да» на этот полезный вопрос, который показывает, что такого рода действия будут закрыть все другие соединения и я думаю, это единственное, что мы здесь ищем, чтобы обойти ошибку
Чтобы изменить свойства базы данных, SQL Server должен закрыть все другие соединения в базу данных. Вы уверены, что хотите изменить свойства и закрыть все остальные подключения? да или нет
- восстановить вашу базу данных
- сделать шаги 1-4 изменения Ограничить доступ назад к MULTI_USER
3-й способ: следующие команды также закроют все соединения.
теперь база данных готова к восстановлению

SET OFFLINE и SET ONLINE также работали с SQL 2008. Обратите внимание, что оба действия должны выполняться последовательно; если БД отключена, ее нельзя восстановить. — Марк Маслар
если БД отключена, ее можно восстановить. Я тестировал его на обновленном 2008 R2, и он работал. Обычно упомянутые методы не работают, и вы должны использовать монитор активности, чтобы убить активные сеансы. — Иман
Вы можете использовать метод объекта SMO SqlServer, чтобы убить все процессы в указанной базе данных перед выполнением восстановления:
ответ дан 14 мар ’14, в 14:03
Причина этой проблемы очевидна (соединения с базой данных в настоящее время открыты / активны), но используйте следующее (погуглите, чтобы вы это поняли), и все будет хорошо:
Очевидно, заменить YOURDDB с именем вашей базы данных и запустите его с главной БД.
Да, и на всякий случай, если вы застряли в однопользовательском режиме, это отменит его:
Надеюсь это поможет.
Вы также можете следить это, чтобы узнать, откуда происходят подключения, и другую информацию:
Как исправить время выполнения Ошибка 29066 У вас нет монопольного доступа к базе данных
В этой статье представлена ошибка с номером Ошибка 29066, известная как У вас нет монопольного доступа к базе данных, описанная как У вас нет монопольного доступа к базе данных. Ваши изменения дизайна не могут быть сохранены в настоящее время. Вы хотите закрыть без сохранения изменений ?.
Информация об ошибке
Имя ошибки: У вас нет монопольного доступа к базе данных
Номер ошибки: Ошибка 29066
Описание: У вас нет монопольного доступа к базе данных. Ваши изменения дизайна не могут быть сохранены в настоящее время. Вы хотите закрыть без сохранения изменений ?.
Программное обеспечение: Microsoft Access
Разработчик: Microsoft
Этот инструмент исправления может устранить такие распространенные компьютерные ошибки, как BSODs, зависание системы и сбои. Он может заменить отсутствующие файлы операционной системы и библиотеки DLL, удалить вредоносное ПО и устранить вызванные им повреждения, а также оптимизировать ваш компьютер для максимальной производительности.
О программе Runtime Ошибка 29066
Время выполнения Ошибка 29066 происходит, когда Microsoft Access дает сбой или падает во время запуска, отсюда и название. Это не обязательно означает, что код был каким-то образом поврежден, просто он не сработал во время выполнения. Такая ошибка появляется на экране в виде раздражающего уведомления, если ее не устранить. Вот симптомы, причины и способы устранения проблемы.
Определения (Бета)
Здесь мы приводим некоторые определения слов, содержащихся в вашей ошибке, в попытке помочь вам понять вашу проблему. Эта работа продолжается, поэтому иногда мы можем неправильно определить слово, так что не стесняйтесь пропустить этот раздел!
- Access — НЕ ИСПОЛЬЗУЙТЕ этот тег для Microsoft Access, используйте вместо него [ms-access]
- База данных — база данных организованный сбор данных.
- Дизайн . Дизайн в программировании — это акт принятия конкретных решений о том, как лучше всего структурировать программу для достижения целей надежности, ремонтопригодности, правильности или простоты использования.
- Время — Измерение времени, необходимого для выполнения операции.
- Доступ — Microsoft Access, также известный как Microsoft Office Access — это система управления базами данных от Microsoft, которая обычно сочетает в себе реляционный Microsoft JetACE Database Engine с графическим пользовательским интерфейсом и инструментами разработки программного обеспечения.
- Сохранение — для хранения данных в на компьютере или на запоминающем устройстве.
Симптомы Ошибка 29066 — У вас нет монопольного доступа к базе данных
Ошибки времени выполнения происходят без предупреждения. Сообщение об ошибке может появиться на экране при любом запуске %программы%. Фактически, сообщение об ошибке или другое диалоговое окно может появляться снова и снова, если не принять меры на ранней стадии.
Возможны случаи удаления файлов или появления новых файлов. Хотя этот симптом в основном связан с заражением вирусом, его можно отнести к симптомам ошибки времени выполнения, поскольку заражение вирусом является одной из причин ошибки времени выполнения. Пользователь также может столкнуться с внезапным падением скорости интернет-соединения, но, опять же, это не всегда так.

(Только для примера)
Причины У вас нет монопольного доступа к базе данных — Ошибка 29066
При разработке программного обеспечения программисты составляют код, предвидя возникновение ошибок. Однако идеальных проектов не бывает, поскольку ошибки можно ожидать даже при самом лучшем дизайне программы. Глюки могут произойти во время выполнения программы, если определенная ошибка не была обнаружена и устранена во время проектирования и тестирования.
Ошибки во время выполнения обычно вызваны несовместимостью программ, запущенных в одно и то же время. Они также могут возникать из-за проблем с памятью, плохого графического драйвера или заражения вирусом. Каким бы ни был случай, проблему необходимо решить немедленно, чтобы избежать дальнейших проблем. Ниже приведены способы устранения ошибки.
Методы исправления
Ошибки времени выполнения могут быть раздражающими и постоянными, но это не совсем безнадежно, существует возможность ремонта. Вот способы сделать это.
Если метод ремонта вам подошел, пожалуйста, нажмите кнопку upvote слева от ответа, это позволит другим пользователям узнать, какой метод ремонта на данный момент работает лучше всего.
SQL: Перевод БД 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. » не повторится.
Для перевода режима работы БД в нормальный многопользовательский режим работы, необходимо выполнить команду: