Single user sql как убрать
Перейти к содержимому

Single user sql как убрать

Как удалить базу данных в режиме 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.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *