Установка экземпляра SQL Server в многопользовательский режим

Мне пришлось восстановить базу данных, но некоторые из пользователей все еще были связаны и ушли на день. Раньше я установил базу данных для одного пользователя, теперь я не вижу эту опцию.

Итак, я внес изменения на уровне экземпляра, установив Свойства /Соединения /Максимальное количество одновременных пользователей на 1, отключив всех остальных пользователей от сервера.

Я перезапустил службу SQL Server, но теперь я вообще не могу получить доступ к базе данных. База данных запущена и запущена, но я не могу открыть окно запроса или щелкнуть правой кнопкой мыши по свойствам, чтобы вернуть изменение.

Как я могу это исправить?

6 голосов | спросил Jacob Thomas 24 +04002014-10-24T14:20:24+04:00312014bEurope/MoscowFri, 24 Oct 2014 14:20:24 +0400 2014, 14:20:24

2 ответа


10

Во-первых, никогда не устанавливайте Max Number of Concurrent Connections на странице свойств сервера на 1. Этот параметр может даже запретить вход в систему администратора, но в любом случае можно использовать выделенное соединение администратора.

  1. Перезапустите службы с помощью диспетчера конфигурации SQL Server, попробуйте войти в систему и, если не удалось, используйте Выделенное подключение администратора .
  2. Щелкните правой кнопкой мыши по имени экземпляра и измените значение Максимальное количество параллельных подключений на 0 (что означает максимум) и перезапустите службы.

Иногда, после установки Max Number of Concurrent Connections на 1, при входе в систему вы можете столкнуться со следующим сообщением об ошибке:

  

Не удается открыть базу данных по умолчанию пользователя. Ошибка входа.
  Ошибка входа для пользователя «UserName»

Чтобы исправить это: в окне входа в систему нажмите кнопку Параметры и в элементе default database выберите базу данных, например tempdb а затем нажмите логин.

Если база данных находится в режиме Single_User

Использование T-SQL:

USE [master];
GO
ALTER DATABASE [YourDatabaseNameHere] SET MULTI_USER WITH NO_WAIT;
GO

Использование SSMS:

  • Щелкните правой кнопкой мыши нужную базу данных -> Свойства
  • Слева от окна свойств базы данных нажмите Параметры
  • С правой стороны прокрутите вниз, а внизу вы найдете раздел status
  • Измените значение Ограничить доступ до multi_user

Если база данных находится в режиме Single_User , и вы хотите изменить ее на Multi_User, но не можете получить к ней доступ, так как у кого-то еще есть соединение, то:

  1. Если у вас есть права ALTER ANY CONNECTION (часть sysadmin и processadmin ) серверные роли), запустите SP_WHO или SP_WHO2 , найдите процесс с использованием целевой базы данных и выполните:

    KILL processid (Ex: KILL 87)
    

    затем выполните над T-SQL, чтобы вернуть вашу базу данных в multi_user .

  2. Или вы можете отсоединить, а затем прикрепить свою базу данных и выполнить T-SQL выше, чтобы привести ее в multi_user . Это не рекомендуется на рабочих серверах.

ответил aasim.abdullah 24 +04002014-10-24T14:56:36+04:00312014bEurope/MoscowFri, 24 Oct 2014 14:56:36 +0400 2014, 14:56:36
2

Чтобы добавить к решению Ассима, вы хотите проверить свой SQLAgent и остановить и отключить все задания. Я должен был сделать это и сделать это для администраторов баз данных, которые убивали процессы только для того, чтобы за ним позади еще один. Не забудьте повторно использовать задания!

ответил Steve Mangiameli 24 +04002014-10-24T18:48:50+04:00312014bEurope/MoscowFri, 24 Oct 2014 18:48:50 +0400 2014, 18:48:50

Похожие вопросы

Популярные теги

security × 330linux × 316macos × 2827 × 268performance × 244command-line × 241sql-server × 235joomla-3.x × 222java × 189c++ × 186windows × 180cisco × 168bash × 158c# × 142gmail × 139arduino-uno × 139javascript × 134ssh × 133seo × 132mysql × 132