Как удалить базу данных в режиме Single_User
Как мне удалить базу данных, которая отображается в DatabaseName (Single User) качестве ее имени?
Когда я пытаюсь удалить его, я получаю следующую ошибку:
Ошибка изменения для базы данных «DatabaseName». (Microsoft.SqlServer.Smo)
Оператор ALTER DATABASE не выполнен. (Microsoft SQL Server, ошибка: 5064)
Я попытался выполнить ALTER ниже и все еще есть та же проблема.
Если вы собираетесь удалить базу данных, вы должны быть единственным подключением к этой базе данных. Если есть какие-либо другие соединения, вы не можете сбросить их. Из сообщения об ошибке (эта ошибка означает, что ваша база данных находится в режиме Single_User, но соединение уже установлено, поэтому вы не можете подключиться), я предполагаю, что вы пытались установить его в режим Single_User, а затем пытались выполнить удаление, но либо вы захватил соединение, о котором вы не знали, или какой-то другой процесс. Тот факт, что перезапуск SSMS сработал для вас, говорит мне о том, что вы, вероятно, захватили это соединение. Вот как вы можете это исправить.
Логически вы должны перевести базу данных обратно в режим multi_user, чтобы затем снова перевести ее в режим single_user (но на этот раз вы будете контролировать одно разрешенное соединение и сбросить базу данных до того, как что-то еще подключится), и тогда ваша база данных будет уйти
В коде вот как вам нужно это сделать ( но сначала закройте окна запросов, которые связаны с этой базой данных. Перезапустите SSMS и убедитесь, что вы не выбираете эту базу данных в браузере объектов ):
Если вы попытаетесь получить доступ к базе данных, которая уже находится в однопользовательском режиме, вам сначала нужно закрыть все подключения к базе данных, в противном случае вы получите сообщение об ошибке:
Сообщение 5064, уровень 16, состояние 1, строка 1 В настоящее время невозможно изменить состояние или параметры базы данных DatabaseName. База данных находится в однопользовательском режиме, и пользователь в настоящее время подключен к ней. Сообщение 5069, уровень 16, состояние 1, строка 1: оператор ALTER DATABASE не выполнен.
Следующий запрос убивает процессы доступа к базе данных:
Тогда вы сможете вернуть базу данных в многопользовательский режим, как обычно:
Выйти из однопользовательского режима
В настоящее время моя база данных находится в однопользовательском режиме. Когда я пытаюсь расширить свою базу данных, я получаю сообщение об ошибке:
База данных my_db недоступна. (ObjectExplorer)
Кроме того, когда я пытаюсь удалить базу данных, я получаю сообщение об ошибке:
В настоящее время невозможно изменить состояние или параметры базы данных my_db. База данных находится в однопользовательском режиме, и в настоящее время к ней подключен пользователь.
Как мне выйти из однопользовательского режима? У меня нет пользователей, использующих эту базу данных.
Когда я пытаюсь просмотреть свой сайт с помощью IIS, я получаю следующую ошибку:
Во время выполнения текущего веб-запроса возникло необработанное исключение. Информацию о происхождении и местонахождении исключения можно определить с помощью трассировки стека исключений ниже.
Single user sql как убрать
This forum has migrated to Microsoft Q&A. Visit Microsoft Q&A to post new questions.
Answered by:
Question
SQL Server 2005. Had changed database to single user/read only option. Now I cant change database back to multi user and all commands are getting stuck.
Msg 924, Level 14, State 1, Line 1
Database ‘db1’ is already open and can only have one user at a time.
I have tried all below and failed to get around this issue
sp_dboption db1, ‘single’, false
alter database db1 multi_user with rollback immediate
I cannot select the spid with as I get Msg 924 with below commands which all get stuck.
select spid from sysprocesses where dbid = (id of database)
sp_who does not show
What can be done to get out of this as this is a production server and difficult to restart midweek.
Answers
Or use DAC (Dedicated Admin Connection). Make sure you have enabled it first
In SSMS type in admin:<instanceName> for Server Name
after connecting to master ALTER DATABASE <DBName> SET MULTI_USER
- Proposed as answer by Jonathan Gardner — MSFT Microsoft employee Tuesday, May 1, 2012 6:26 PM
- Marked as answer by Peja Tao Tuesday, May 8, 2012 1:41 AM
I had a similar problem when the Query Tab for the single user got closed accidently.
1. I logged in through DAC. I tried killing a SPID (sp_who2) that I thought had the lock but could not get access to the database and I could not bring the database to muti-user mode.
2. I logged on as sa, but I could not bring the database to muti-user mode.
3. I tried re-starting the SQL Server instance (Test Server), the instance would not stop.
4. I had to reboot the Database Server (Test Server). The database recovered on it’s own.
I was then able to bring the database to single user mode, ran check db and then brought the database back to multi-user mode.