J'ai réduit la mémoire maximale de mon instance SQL Server à 15 Mo ... Maintenant, je ne peux pas me connecter pour l'augmenter. Comment augmenter la mémoire maximale sans me connecter?
La version est SQL 2008 R2
la source
J'ai réduit la mémoire maximale de mon instance SQL Server à 15 Mo ... Maintenant, je ne peux pas me connecter pour l'augmenter. Comment augmenter la mémoire maximale sans me connecter?
La version est SQL 2008 R2
Connectez-vous à l'aide de la connexion administrateur dédié (DAC) , qui est garanti un minimum de ressources afin de résoudre des problèmes exactement comme celui-ci. Par exemple, si vous vous connectez via Management Studio, lancez une fenêtre Nouvelle requête et tapez simplement ADMIN:servername
au lieu de servername
quand il vous invite à vous connecter. Ignorez toutes les erreurs que vous obtenez qui sont généralement bénignes car elles sont associées à l'Explorateur d'objets, la liste déroulante de la base de données, IntelliSense, etc. essayant également de se connecter en votre nom (une seule connexion DAC est autorisée).
Plus d'informations ici , ici , et quelques dépannage ici .
Alternativement (puisque cela s'est produit deux fois auparavant et que l'astuce DAC n'a pas fonctionné pour moi), fermez le service SQL Server, puis ramenez-le en mode "configuration minimale", qui est une version modifiée du mode mono-utilisateur.
Via la ligne de commande, accédez au chemin de l'exécutable sqlservr.exe, comme indiqué dans le service. Mais au lieu de courir sqlservr.exe -m
, utilisez sqlservr.exe -f"sqlcmd"
. Cela autorisera UNIQUEMENT les connexions à partir de l'application nommée, donc tout le reste échouera, mais vous pourrez vous connecter, modifier le paramètre, émettre la commande SHUTDOWN depuis SQLCMD, puis la faire apparaître normalement.
À partir de l'invite de commandes, démarrez sqlCmd à l'aide de la connexion administrateur DAC (Didicated Administrator Connection). :
C: \> sqlcmd -S ServerName -U sa -P –A
Une fois que vous êtes connecté, exécutez ce qui suit pour définir la mémoire sur 4Gigs. il devrait être suffisant pour vous permettre de vous reconnecter à l'aide de l'outil Management studio.
sp_configure 'afficher les options avancées', 1; ALLER RECONFIGURER; ALLER sp_configure 'max server memory', 4096; ALLER RECONFIGURER; ALLER
Pour plus d'informations sur le DAC, voir: Connexion administrateur dédié (DAC) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx
Je viens d'avoir le même problème et je n'ai pas eu de chance avec le lancement de SSMS ou du DAC, donc j'espère que cela aidera la prochaine personne qui est en panique.
J'ai lancé le Gestionnaire de configuration SQL Server (j'exécute SQL 2017) sur le serveur, sélectionné "Services SQL Server" dans le volet de gauche, puis cliqué avec le bouton droit sur "SQL Server (MSSQLSERVER)" dans le volet de droite et choisissez "propriétés". Dans la fenêtre Propriétés, je suis allé dans l'onglet "Paramètres de démarrage" et j'ai ajouté le paramètre de démarrage "-f". J'ai redémarré le service SQL et lancé en mode " configuration minimale ". J'ai ensuite pu entrer dans SSMS et corriger le paramètre Max Memory. Je suis ensuite retourné à l'onglet "Paramètres de démarrage" et supprimé le paramètre "-f" et redémarré le service à nouveau.
Même problème, la mémoire a été réglée trop bas par erreur. Impossible de se connecter en utilisant DAC, a fait ce qui suit:
net start "SQL Server (MSSQLSERVER)" /f /m
Cette opération est effectuée à l'aide de la commande net start / stop ou à l'aide de la commande sqlserver.exe. Voyons d'abord comment cela se fait via la commande net start / stop La syntaxe d'une commande net start / stop est NET START Le nom du service peut être obtenu comme indiqué ci-dessous.
--- activer le service est un mode mono-utilisateur
C: \ Program Files \ Microsoft SQL Server \ 130 \ Tools \ Binn> net start "SQL Server (MSSQLSERVER)" / f / m Le service SQL Server (MSSQLSERVER) démarre. Le service SQL Server (MSSQLSERVER) a été démarré avec succès. Connecté à l'aide de SSMS directement sur le serveur et a pu accéder aux propriétés et définir les paramètres de mémoire appropriés. Ou exécutez la commande ci-dessous: - sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'max server memory', 4096; GO RECONFIGURE; ALLER
- sortir du mode mono-utilisateur en arrêtant le service
C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net stop "SQL Server (MSSQL
SERVER)"
Pour démarrer l'instance SQL en mode multi-utilisateurs, arrêtez le service à l'aide de net stop comme indiqué ci-dessus, puis démarrez-le sans spécifier le paramètre \ m comme indiqué ci-dessous.
C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net start "SQL Server (MSSQLSERVER)"
The SQL Server (MSSQLSERVER) service is starting.
The SQL Server (MSSQLSERVER) service was started successfully.
Une chose à noter ici est que le démarrage de l'instance SQL Server ne démarre pas le service SQL Server Agent. Afin de démarrer l'agent SQL Server, obtenez le nom du service en utilisant la méthode partagée ci-dessus et démarrez-le comme indiqué dans l'image ci-dessus. Ou accédez aux services et activez-le.