Avvio di SQL Server in modalità utente singoloStart SQL Server in Single-User Mode

In alcuni casi potrebbe essere necessario avviare un'istanza di SQL ServerSQL Server in modalità utente singolo usando l' opzione di avvio -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. Ad esempio, può risultare utile modificare le opzioni di configurazione del server oppure recuperare un database master o un altro database di sistema danneggiato.For example, you may want to change server configuration options or recover a damaged master database or other system database. In entrambi i casi, è necessario avviare un'istanza di SQL ServerSQL Server in modalità utente singolo.Both actions require starting an instance of SQL ServerSQL Server in single-user mode.

L'avvio di SQL ServerSQL Server in modalità utente singolo consente a qualsiasi membro del gruppo Administrators locale del computer di connettersi all'istanza di SQL ServerSQL Server come membro del ruolo predefinito del 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. Per altre informazioni, vedere Connettersi a SQL Server se gli amministratori di sistema sono bloccati.For more information, see Connect to SQL Server When System Administrators Are Locked Out.

Quando si avvia un'istanza di SQL ServerSQL Server in modalità utente singolo, si noti quanto segue:When you start an instance of SQL ServerSQL Server in single-user mode, note the following:

  • La connessione al server è consentita a un solo utente.Only one user can connect to the server.

  • Il processo CHECKPOINT non viene eseguito.The CHECKPOINT process is not executed. Per impostazione predefinita, tale processo viene eseguito automaticamente all'avvio.By default, it is executed automatically at startup.

Nota

Arrestare il servizio SQL ServerSQL Server Agent prima di connettersi a un'istanza di SQL ServerSQL Server in modalità utente singolo. In caso contrario, il servizio SQL ServerSQL Server Agent utilizzerà la connessione, bloccandola.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.

Quando si avvia un'istanza di SQL ServerSQL Server in modalità utente singolo, SQL Server Management StudioSQL Server Management Studio può connettersi a 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. In Esplora oggetti in Management StudioManagement Studio potrebbe verificarsi un errore perché per alcune operazioni sono necessarie più connessioni.Object Explorer in Management StudioManagement Studio might fail because it requires more than one connection for some operations. Per gestire SQL ServerSQL Server in modalità utente singolo, eseguire istruzioni Transact-SQLTransact-SQL stabilendo la connessione solo tramite l'editor di query in Management StudioManagement Studiooppure usare l'utilità 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.

Quando si usa l'opzione -m con SQLCMD o Management StudioManagement Studio, è possibile limitare le connessioni a un'applicazione client specifica.When you use the -m option with SQLCMD or Management StudioManagement Studio, you can limit the connections to a specified client application.

Nota

In Linux SQLCMD deve essere scritto in maiuscolo come illustrato.On Linux, SQLCMD must be capitalized as shown.

Ad esempio, -m"SQLCMD" limita le connessioni a una singola connessione che deve identificarsi come programma client SQLCMD.For example, -m"SQLCMD" limits connections to a single connection and that connection must identify itself as the SQLCMD client program. Utilizzare questa opzione quando si avvia SQL ServerSQL Server in modalità utente singolo e un'applicazione client sconosciuta accede all'unica connessione disponibile.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. Per connettersi con l'editor di query in Management StudioManagement Studio, usare -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".

Importante

Non utilizzare tale opzione come caratteristica di sicurezza.Do not use this option as a security feature. L'applicazione client fornisce il nome dell'applicazione client stessa e può indicare un nome falso come parte della stringa di connessione.The client application provides the client application name, and can provide a false name as part of the connection string.

Nota per le installazioni clusterNote for Clustered installations

Per un'installazione di SQL ServerSQL Server in un ambiente cluster, quando SQL ServerSQL Server viene avviato in modalità utente singolo, la dll della risorsa cluster utilizza tutta la connessione disponibile, bloccando pertanto qualsiasi altra connessione al server.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. Quando SQL ServerSQL Server si trova in questo stato, se si tenta di portare la risorsa SQL ServerSQL Server online, potrebbe venire eseguito il failover della risorsa SQL a un nodo diverso se la risorsa è configurata in modo da influire sul gruppo.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.

Per aggirare il problema, attenersi alla procedura seguente:To get around the problem use the following procedure:

  1. Rimuovere il parametro di avvio -m dalle proprietà avanzate di SQL ServerSQL Server .Remove the –m startup parameter from the SQL ServerSQL Server advanced Properties.

  2. Portare la risorsa SQL ServerSQL Server offline.Take the SQL ServerSQL Server resource offline.

  3. Dal nodo del proprietario corrente di questo gruppo eseguire il comando seguente da a un prompt dei comandi: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. Verificare tramite Amministrazione cluster o tramite la console di gestione del cluster di failover che la risorsa SQL ServerSQL Server sia ancora offline.Verify from the cluster administrator or failover cluster management console that the SQL ServerSQL Server resource is still offline.

  5. Connettersi ora a SQL ServerSQL Server con il comando seguente ed eseguire l'operazione necessaria: SQLCMD -E -S<nomeserver>.Connect to the SQL ServerSQL Server now using the following command and do the necessary operation: SQLCMD -E -S<servername>.

  6. Dopo aver completato l'operazione, chiudere il prompt dei comandi e riportare online SQL e le altre risorse tramite Amministrazione cluster.Once the operation is complete, close the command prompt and bring back the SQL and other resources online through cluster administrator.

Vedere ancheSee Also

Avvio, arresto o sospensione del servizio SQL Server Agent Start, Stop, or Pause the SQL Server Agent Service
Connessione di diagnostica per gli amministratori di database Diagnostic Connection for Database Administrators
Utilità sqlcmd sqlcmd Utility
CHECKPOINT (Transact-SQL) CHECKPOINT (Transact-SQL)
sp_configure (Transact-SQL) sp_configure (Transact-SQL)
Opzioni di avvio del servizio del motore di databaseDatabase Engine Service Startup Options