web-dev-qa-db-fra.com

Un seul administrateur peut se connecter à ce moment (erreur MS SQL Server 18461)

J'expérimentais l'effet de donner à SQL Server une petite quantité de mémoire que je pensais qu'il allait récupérer.

J'ai configuré SQL Server pour utiliser 200 Mo de mémoire maintenant, il ne veut pas démarrer, j'ai fait quelques recherches sur Internet et on m'a conseillé de démarrer SQL Server en mode mono-utilisateur. cependant, je reçois l'erreur

Échec de la connexion pour l'utilisateur A. Motif: le serveur est en mode mono-utilisateur. Un seul administrateur peut se connecter à ce moment (Microsoft SQL Server, erreur: 18461)

enter image description here

J'ai arrêté l'Agent SQL Server.

14
CodeWi

Si vous démarrez SQL Server en mode mono-utilisateur, un seul administrateur peut se connecter en même temps.

Ce qui se passe probablement ici, c'est que certains services utilisent une connexion sysadmin pour se connecter, tels que Reporting services ou l'agent SQL Server.

Lorsque vous démarrez SQL Server en mode mono-utilisateur, vous avez la possibilité de spécifier une application cliente afin que seule cette application puisse se connecter.

Jetez un oeil à options de ligne de commande où il répertorie:

-m "Nom de l'application client"

Lorsque vous utilisez l'option -m avec SQLCMD ou SQL Server Management Studio, vous pouvez limiter les connexions à une application cliente spécifiée. Par exemple, -m "SQLCMD" limite les connexions à une seule connexion et cette connexion doit s'identifier comme programme client SQLCMD. Utilisez cette option lorsque vous démarrez SQL Server en mode mono-utilisateur et qu'une application cliente inconnue utilise la seule connexion disponible. Pour vous connecter via l'éditeur de requête dans Management Studio, utilisez -m "Microsoft SQL Server Management Studio - Requête".

Le nom de l'application client est sensible à la casse.

Si vous êtes en mesure de vous connecter de cette manière, modifiez la mémoire maximale du serveur en quelque chose de raisonnable. Je suppose que vous pourrez vous connecter car sinon vous recevriez probablement quelque chose car "il n'y a pas de processus à l'autre bout du tuyau" donc je suppose que votre serveur fonctionne.

Si toutefois vous ne pouvez pas vous connecter à SQL Server car votre configuration de mémoire ne vous le permet pas, vous pouvez démarrer SQL Server dans une configuration minimale en utilisant le -f option.

-F

Démarre une instance de SQL Server avec une configuration minimale. Cela est utile si la définition d'une valeur de configuration (par exemple, une surcharge de mémoire) a empêché le démarrage du serveur. Le démarrage de SQL Server en mode de configuration minimale place SQL Server en mode mono-utilisateur. Pour plus d'informations, consultez la description de -m qui suit.

Pour référence: SQL Server ne peut pas démarrer après avoir accidentellement défini la "mémoire maximale du serveur" sur

  • Démarrer l'instance SQL en mode de configuration minimale

    NET START MSSQLSERVER /f
    
  • Connectez-vous à l'instance à partir de la même fenêtre cmd et modifiez le paramètre de mémoire Max:

    SQLCMD -S Server/Instance -E
    

    Vous devriez voir une invite qui ressemble à ceci:

    1> 
    

Par défaut, le paramètre de mémoire maximale peut ne pas être disponible pour l'affichage et la modification. Pour modifier ce comportement, utilisez la requête ci-dessous:

sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
sp_configure 'max server memory', 4096;  
GO  
RECONFIGURE;  
GO  

Redémarrez l'instance à partir de Configuration Manager.

7
Ramakant Dadhichi

A pu ouvrir la fenêtre de l'éditeur de requête dans SSMS après le démarrage de SQL Server en mode mono-utilisateur. Voir: https://www.sqlservercentral.com/forums/topic/unable-to-open-ssms-in-single-user-mode

0
aEon'