Мне нужна помощь с настройкой базы данных, которая была восстановлена в SINGLE_USER
режиме MULTI_USER
. Каждый раз, когда я бегу
ALTER DATABASE BARDABARD
SET MULTI_USER;
GO
Я получаю эту ошибку:
Изменения состояния или параметров базы данных «BARDABARD» не могут быть сделаны в это время.
База данных находится в однопользовательском режиме, и пользователь в настоящее время подключен к ней.
Он должен быть не в SINGLE_USER
режиме, чтобы установить его в другой режим, но я не могу установить базу данных в любом другом режиме, пока он находится в SINGLE_USER
режиме.
sql
sql-server
Rahna1970418
источник
источник
master
) выбрана в раскрывающемся меню панели Доступные базы данных , когда окно запроса активно. Если это по-прежнему вызывает у вас головную боль, закройте все остальные окна запросов и выберите невинную системную базу данных, например,master
илиtempdb
в раскрывающемся списке в одном из оставленных вами окон.Это сообщение об ошибке обычно означает, что есть другие процессы, связанные с БД. Попробуйте запустить это, чтобы увидеть, какие из них связаны:
Это вернет вам процесс, и тогда вы сможете запустить:
Где [xxx] - это
spid
процесс, который вы пытаетесь убить.Тогда вы можете запустить ваше заявление выше.
Удачи.
источник
Вы можете добавить опцию немедленного отката изменений.
источник
ROLLBACK IMMEDIATE
именно делает?ALTER DATABASE
транзакции оператора, в отличие от того,WITH ROLLBACK X SECONDS
который ожидает завершения транзакций, прежде чем заставить их откатываться или ждать бесконечно, пока нет ожидающих транзакций (что, по моему мнению, является значением по умолчанию, но не могу найти в документе в данный момент). Это эквивалентно «останови все, что ты сейчас делаешь, и сделай это».SQL Server 2012:
щелкните правой кнопкой мыши
DB > Properties > Options > [Scroll down] State > RestrictAccess > select Multi_user
и нажмите ОК.Вуаля!
источник
У меня была та же проблема, и она была решена с помощью следующих шагов - ссылка: http://giladka8.blogspot.com.au/2011/11/database-is-in-single-user-mode-and.html
источник
Это работало нормально для меня.
Шаг 1. Щелкните правой кнопкой мыши на движке базы данных, щелкните на мониторе активности и посмотрите, какой процесс подключен. Убейте этого конкретного пользователя и немедленно выполните запрос.
Шаг 2.
и обновить базу данных.
источник
У меня действительно была проблема, когда моя база данных была в значительной степени заблокирована процессами и состоянием гонки с ними, к тому времени, когда я обновил одну выполненную команду, и они снова ее заблокировали ... Я должен был выполнить следующие команды вплотную в SSMS и получил меня в автономном режиме, а оттуда я сделал восстановление и вернулся в онлайн просто отлично, два запроса, где:
Первый побежал:
Затем сразу после (во втором окне запроса):
Сделал то, что мне было нужно, а затем вернул его в онлайн. Спасибо всем, кто написал эти кусочки для меня, чтобы объединить и решить мою проблему.
источник
Лучше всего войти на сервер напрямую, а не с помощью SQL Management Studio.
Убедитесь, что вы вошли в систему под учетной записью dbowner для базы данных, для которой вы хотите установить MULTI_USER. Войдите в систему как sa (используя аутентификацию сервера SQL), если можете
Если ваша база данных используется IIS, остановите веб-сайт и пул приложений, которые его используют - это может быть процесс, который подключен и не позволяет установить MULTI_USER.
Обратитесь сюда, если у вас все еще есть проблемы:
http://www.sqlservercentral.com/blogs/pearlknows/2014/04/07/help-im-stuck-in-single-user-mode-and-can-t-get-out/
КАК ПОСЛЕДНЯЯ АЛЬТЕРНАТИВА - Если вы перепробовали все вышеперечисленное и испытываете отчаяние, попробуйте остановить экземпляр SQL-сервера и запустить его снова.
источник
Я только что исправил, используя следующие шаги, это может помочь вам.
Шаг 1
Шаг 2
Шаг 3
Шаг: 4
Шаг: 5
Затем выполните следующий запрос.
Наслаждаться...!
источник
Код ниже работал для меня, когда я не знал конкретный SPID, который использовался для перехода в
singleuser
режим.источник
затем вернуть его живым
источник
Это работало нормально для меня
Надеюсь, что эта работа для всех Спасибо Рамеш Кумар
источник
Если вышеупомянутое не работает, найдите логин spid и отключите его в Security - Logins
источник
Вы не можете сделать это, потому что база данных в одиночном режиме. Прежде всего, но вы должны знать, что: когда вы открывали SQL Server Management Studio, он не знает ни одного пользователя в базе данных, но когда вы щелкаете по базе данных, он считает вас единственным пользователем, и ваша команда не работает. Просто сделайте это: закройте студию управления и снова откройте ее. В новом окне запроса без выбора базы данных напишите командный скрипт.
сделай f5 wolla все ок!
источник
Я решил проблему легко
Щелкните правой кнопкой мыши на имени базы данных, переименуйте его
После изменения щелкните правой кнопкой мыши имя базы данных -> свойства -> параметры -> перейти к нижней части прокрутки RestrictAccess (от SINGLE_USER до MULTI_USER)
Теперь снова вы можете переименовать базу данных как ваше старое имя.
источник
Более чем в 3 случаях, когда я работал с SQL Server 2014, мне приходилось преобразовывать базу данных в однопользовательский режим, и я ничего не менял. Должно быть, это произошло как-то во время создания базы данных. Все описанные выше методы никогда не работали, так как я всегда получал сообщение об ошибке, что база данных была в однопользовательском режиме и не могла быть подключена.
Единственная вещь, которую я получил, - перезапуск службы Windows Server Windows. Это позволило мне подключиться к базе данных и внести необходимые изменения или удалить базу данных и начать заново.
источник
просто перейдите в свойства базы данных и измените режим SINGLE USER на MULTI USER
ПРИМЕЧАНИЕ: если это не работает для вас, то сделайте резервную копию базы данных и восстановите ее снова, а затем повторите описанный выше метод.
* Single = SINGLE_USER
Многократное = MULTI_USER
Restricted = RESTRICTED_USER
источник
После перехода в однопользовательский режим клиент может установить только ОДНО соединение с SQL Server, помните, что «Обозреватель объектов» принимает (отдельное) соединение, поэтому, если вы пытаетесь запустить многопользовательский оператор в запросе окно, вы получите ошибку, что в однопользовательском режиме вы не можете установить другое соединение.
Для меня это не было проблемой, хотя, в моем случае, было немного автоматизированных процессов, которые постоянно (каждые несколько секунд) устанавливали соединения, поэтому, как только я перешел в БД в однопользовательском режиме и отключил себя, один из процессы установили / заняли соединение (прежде чем я смог начать операцию восстановления). Как только я разорвал эти соединения - они переподключились, и когда я запустил команду Восстановить, я получил бы ошибку, что соединение уже занято.
Чтобы решить эту проблему, я должен был написать
kill
заявления, изменениеUser-Mode
заявлений иRestore
операции в одном окне запроса, и когда я запустил их все за один раз, вуаля !!! это сработало.Надеюсь, что это помогает другим.
источник
У меня были проблемы с локальной БД.
Я смог решить эту проблему, остановив SQL-сервер, а затем запустив SQL-сервер, а затем с помощью пользовательского интерфейса SSMS изменил свойства БД на Multi_User.
БД перешел в режим «Однопользовательский», когда я пытался восстановить резервную копию. Я не создавал резервную копию целевой базы данных перед попыткой восстановления (SQL 2017). это получит тебя каждый раз.
Остановите SQL Server, запустите SQL Server, затем запустите приведенные выше сценарии или используйте пользовательский интерфейс.
источник
Некоторое время я гуглил решение и, наконец, придумал следующее решение:
SSMS в целом использует несколько подключений к базе данных за кулисами.
Вам нужно будет разорвать эти соединения, прежде чем менять режим доступа. (Я сделал это с EXEC (@kill); в шаблоне кода ниже.)
Затем,
Запустите следующий SQL, чтобы установить базу данных в режиме MULTI_USER.
Чтобы вернуться в однопользовательский режим, вы можете использовать:
Это должно работать. Удачного кодирования!
Спасибо!!
источник