Запуск SQL Server в однопользовательском режиме
Применимо к:SQL Server
При определенных обстоятельствах экземпляр SQL Server нужно запустить в однопользовательском режиме, используя параметр запуска-m
. Например, может понадобиться изменить параметры конфигурации сервера или восстановить поврежденную базу данных master
или другую системную базу данных. Для обоих этих действий необходим запуск экземпляра SQL Server в однопользовательском режиме.
Сведения о восстановлении базы данных master
в Linux в однопользовательском режиме см. в статье "Восстановление базы данных master в Linux в однопользовательском режиме".
После запуска SQL Server в однопользовательском режиме каждый член локальной группы администраторов на компьютере сможет подключаться к экземпляру SQL Server от имени участника предопределенной роли сервера sysadmin. Дополнительные сведения см. в статье Подключение к SQL Server в случае, если доступ системных администраторов заблокирован.
При запуске экземпляра SQL Server в однопользовательском режиме необходимо обратить внимание на следующее:
Только один пользователь может подключиться к серверу.
Процесс CHECKPOINT не выполняется. По умолчанию он автоматически выполняется при запуске.
Примечание
Перед подключением к экземпляру SQL Server в однопользовательском режиме остановите службу агента SQL Server . В противном случае служба агента SQL Server будет использовать соединение, тем самым блокируя его
Если экземпляр SQL Server запускается в однопользовательском режиме, среда SQL Server Management Studio может подключаться к SQL Server. Обозреватель объектов в среде Среда Management Studio может вызвать ошибку, так как для некоторых операций ему необходимо одновременно несколько соединений. Чтобы управлять экземпляром SQL Server в однопользовательском режиме, выполняйте инструкции Transact-SQL через подключенный Редактор запросов в Management Studio или Azure Data Studio либо используйте служебную программу sqlcmd.
При использовании параметра -m
с SQLCMD
или Среда Management Studio вы можете ограничить подключения к определенному клиентскому приложению.
Примечание
В Linux SQLCMD
нужно указывать прописными буквами.
Например, -m"SQLCMD"
разрешает только одно подключение, которое должно идентифицироваться как клиентская программа sqlcmd. Этот параметр следует использовать, когда SQL Server запускается в однопользовательском режиме, а единственное доступное соединение занято неизвестным клиентским приложением. Для подключения через редактор запросов в Среда Management Studio используйте -m"Microsoft SQL Server Management Studio - Query"
.
Важно!
Не используйте этот параметр как средство безопасности. Клиентское приложение предоставляет имя клиентского приложения и может указать ложное имя в составе строки подключения.
Следующий пример запускает экземпляр SQL Server в однопользовательском режиме и разрешает подключение только через редактор запросов среды SQL Server Management Studio.
net start "SQL Server (MSSQLSERVER)" /m"Microsoft SQL Server Management Studio - Query"
Примечание для кластеризованной установки
Когда при установке SQL Server в кластерной среде выполняется запуск SQL Server в однопользовательском режиме, DLL-библиотека ресурсов кластера использует доступное соединение, блокируя тем самым любые другие подключения к серверу. В таком состоянии SQL Server попытка перевести ресурс агента SQL Server в режим «в сети», может привести к переходу ресурса SQL на другой узел, если этот ресурс настроен с учетом группы.
Для решения этой проблемы используется следующая процедура.
Удалите параметр запуска
-m
из дополнительных свойств SQL Server.Переведите ресурс SQL Server в режим «вне сети».
С текущего узла владельца этой группы выполните в командной строке следующую команду:
net start MSSQLSERVER /m
Уточните у администратора кластера или с помощью консоли управления отказоустойчивым кластером, остается ли ресурс SQL Server в режиме «вне сети».
Подключитесь к SQL Server, используя следующую команду, и выполните требуемую операцию: SQLCMD -E -S<имя_сервера>.
После завершения операции закройте командную строку и переведите SQL и другие ресурсы обратно в режим «в сети», обратившись к администратору кластера.
См. также раздел
- Восстановление базы данных master в Linux в однопользовательском режиме
- Запуск, остановка или приостановка службы агента SQL Server
- Диагностическое соединение для администраторов баз данных
- Программа sqlcmd
- CHECKPOINT (Transact-SQL)
- sp_configure (Transact-SQL)
- Параметры запуска службы Database Engine