Запуск SQL Server в однопользовательском режимеStart SQL Server in Single-User Mode

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions)

При определенных обстоятельствах экземпляр SQL ServerSQL Server нужно запустить в однопользовательском режиме (используется параметр запуска -m).Under certain circumstances, you may have to start an instance of SQL ServerSQL Server in single-user mode by using the startup option -m. Например, может понадобиться изменить параметры конфигурации сервера, восстановить поврежденную базу данных master или другую системную базу данных.For example, you may want to change server configuration options or recover a damaged master database or other system database. Для обоих этих действий необходим запуск экземпляра SQL ServerSQL Server в однопользовательском режиме.Both actions require starting an instance of SQL ServerSQL Server in single-user mode.

После запуска SQL ServerSQL Server в однопользовательском режиме каждый член локальной группы администраторов на компьютере сможет подключаться к экземпляру SQL ServerSQL Server от имени члена предопределенной роли сервера sysadmin.Starting SQL ServerSQL Server in single-user mode enables any member of the computer's local Administrators group to connect to the instance of SQL ServerSQL Server as a member of the sysadmin fixed server role. Дополнительные сведения см. в статье Подключение к SQL Server в случае, если доступ системных администраторов заблокирован.For more information, see Connect to SQL Server When System Administrators Are Locked Out.

При запуске экземпляра SQL ServerSQL Server в однопользовательском режиме необходимо обратить внимание на следующее:When you start an instance of SQL ServerSQL Server in single-user mode, note the following:

  • Только один пользователь может подключиться к серверу.Only one user can connect to the server.

  • Процесс CHECKPOINT не выполняется.The CHECKPOINT process is not executed. По умолчанию он автоматически выполняется при запуске.By default, it is executed automatically at startup.

Примечание

Перед подключением к экземпляру SQL ServerSQL Server в однопользовательском режиме остановите службу агента SQL ServerSQL Server . В противном случае служба агента SQL ServerSQL Server будет использовать соединение, тем самым блокируя егоStop the SQL ServerSQL Server Agent service before connecting to an instance of SQL ServerSQL Server in single-user mode; otherwise, the SQL ServerSQL Server Agent service uses the connection, thereby blocking it.

Если экземпляр SQL ServerSQL Server запускается в однопользовательском режиме, среда SQL Server Management StudioSQL Server Management Studio может подключаться к SQL ServerSQL Server.When you start an instance of SQL ServerSQL Server in single-user mode, SQL Server Management StudioSQL Server Management Studio can connect to SQL ServerSQL Server. Обозреватель объектов в среде Среда Management StudioManagement Studio может вызвать ошибку, так как для некоторых операций ему необходимо одновременно несколько соединений.Object Explorer in Среда Management StudioManagement Studio might fail because it requires more than one connection for some operations. Чтобы управлять SQL ServerSQL Server в однопользовательском режиме, выполняйте инструкции Transact-SQLTransact-SQL , подключаясь только через редактор запросов в среде Среда Management StudioManagement Studio, или используйте программу sqlcmd.To manage SQL ServerSQL Server in single-user mode, execute Transact-SQLTransact-SQL statements by connecting only through the Query Editor in Среда Management StudioManagement Studio, or use the sqlcmd utility.

При использовании параметра -m с SQLCMD или Среда Management StudioManagement Studio вы можете ограничить подключения к определенному клиентскому приложению.When you use the -m option with SQLCMD or Среда Management StudioManagement Studio, you can limit the connections to a specified client application.

Примечание

В Linux SQLCMD нужно указывать прописными буквами.On Linux, SQLCMD must be capitalized as shown.

Например, -m"SQLCMD" разрешает только одно подключение, которое должно идентифицироваться как клиентская программа SQLCMD.For example, -m"SQLCMD" limits connections to a single connection and that connection must identify itself as the SQLCMD client program. Этот параметр следует использовать, когда SQL ServerSQL Server запускается в однопользовательском режиме, а единственное доступное соединение занято неизвестным клиентским приложением.Use this option when you are starting SQL ServerSQL Server in single-user mode and an unknown client application is taking the only available connection. Чтобы подключиться с помощью редактора запросов в Среда Management StudioManagement Studio, используйте -m"Microsoft SQL Server Management Studio - Query" .To connect through the Query Editor in Среда Management StudioManagement Studio, use -m"Microsoft SQL Server Management Studio - Query".

Важно!

Не используйте этот параметр как средство безопасности.Do not use this option as a security feature. Клиентское приложение предоставляет имя клиентского приложения и может указать ложное имя в составе строки подключения.The client application provides the client application name, and can provide a false name as part of the connection string.

Следующий пример запускает экземпляр SQL Server в однопользовательском режиме и разрешает подключение только через редактор запросов среды SQL Server Management Studio.The following example starts the SQL Server instance in single-user mode and only allows connection through the SQL Server Management Studio Query Editor.

net start "SQL Server (MSSQLSERVER)" -m"Microsoft SQL Server Management Studio - Query"

Примечание для кластеризованной установкиNote for Clustered installations

Когда при установке SQL ServerSQL Server в кластерной среде выполняется запуск SQL ServerSQL Server в однопользовательском режиме, DLL-библиотека ресурсов кластера использует доступное соединение, блокируя тем самым любые другие подключения к серверу.For SQL ServerSQL Server installation in a clustered environment, when SQL ServerSQL Server is started in single user mode, the cluster resource dll uses up the available connection thereby blocking any other connections to the server. В таком состоянии SQL ServerSQL Server попытка перевести ресурс агента SQL ServerSQL Server в режим «в сети», может привести к переходу ресурса SQL на другой узел, если этот ресурс настроен с учетом группы.When SQL ServerSQL Server is in this state, if you try to bring SQL ServerSQL Server Agent resource online, it may fail over the SQL resource to a different node if the resource is configured to affect the group.

Для решения этой проблемы используется следующая процедура.To get around the problem use the following procedure:

  1. Удалите параметр запуска -m из дополнительных свойств SQL ServerSQL Server.Remove the -m startup parameter from the SQL ServerSQL Server advanced Properties.

  2. Переведите ресурс SQL ServerSQL Server в режим «вне сети».Take the SQL ServerSQL Server resource offline.

  3. С текущего узла владельца этой группы выполните в командной строке следующую команду:From the current owner node of this group, issue the following command from the command prompt:
    net start MSSQLSERVER /m.net start MSSQLSERVER /m.

  4. Уточните у администратора кластера или с помощью консоли управления отказоустойчивым кластером, остается ли ресурс SQL ServerSQL Server в режиме «вне сети».Verify from the cluster administrator or failover cluster management console that the SQL ServerSQL Server resource is still offline.

  5. Подключитесь к SQL ServerSQL Server, используя теперь следующую команду, и выполните необходимую операцию: SQLCMD -E -S<servername>.Connect to the SQL ServerSQL Server now using the following command and do the necessary operation: SQLCMD -E -S<servername>.

  6. После завершения операции закройте командную строку и переведите SQL и другие ресурсы обратно в режим «в сети», обратившись к администратору кластера.Once the operation is complete, close the command prompt and bring back the SQL and other resources online through cluster administrator.

См. также:See Also

Запуск, остановка или приостановка службы агента SQL Server Start, Stop, or Pause the SQL Server Agent Service
Диагностическое соединение для администраторов баз данных Diagnostic Connection for Database Administrators
sqlcmd Utility sqlcmd Utility
CHECKPOINT (Transact-SQL) CHECKPOINT (Transact-SQL)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
Параметры запуска службы Database EngineDatabase Engine Service Startup Options