Versehentlich wurde der SQL-Speicher zu niedrig zum Anmelden. Wie behebe ich das?

14

Ich habe den maximalen Arbeitsspeicher meiner SQL Server-Instanz auf 15 MB gesenkt. Jetzt kann ich mich nicht mehr anmelden, um ihn zu erhöhen. Wie kann ich den maximalen Speicher erhöhen, ohne mich anzumelden?

Version ist SQL 2008 R2

CamronBute
quelle

Antworten:

18

Stellen Sie eine Verbindung über die dedizierte Administratorverbindung (DAC) her , bei der ein Minimum an Ressourcen garantiert ist, um Probleme wie diese zu lösen. Wenn Sie beispielsweise eine Verbindung über Management Studio herstellen, öffnen Sie ein neues Abfragefenster und geben Sie ADMIN:servernamestatt der servernameEingabeaufforderung eine Verbindung ein. Ignorieren Sie alle Fehler, die in der Regel harmlos sind, da sie mit dem Objekt-Explorer, der Datenbank-Dropdown-Liste, IntelliSense usw. in Verbindung stehen und in Ihrem Namen eine Verbindung herstellen möchten (nur eine DAC-Verbindung ist zulässig).

Weitere Informationen hier , hier und einige Informationen zur Fehlerbehebung hier .

Aaron Bertrand
quelle
7

Alternativ (da dies zweimal vorgekommen ist und der DAC-Trick bei mir nicht funktioniert hat), fahren Sie den SQL Server-Dienst herunter und bringen Sie ihn dann in den Modus "Minimalkonfiguration" zurück, der eine modifizierte Version des Einzelbenutzermodus ist.

Wechseln Sie über die Befehlszeile zu dem Pfad für die ausführbare Datei sqlservr.exe, der im Dienst aufgeführt ist. Aber anstatt zu rennen sqlservr.exe -m, benutze sqlservr.exe -f"sqlcmd". Dadurch werden NUR Verbindungen von der angegebenen Anwendung zugelassen, sodass alles andere fehlschlägt. Sie können jedoch eine Verbindung herstellen, die Einstellung ändern, den Befehl SHUTDOWN in SQLCMD ausführen und ihn dann normal aufrufen.

Mbourgon
quelle
4

Starten Sie an der Eingabeaufforderung sqlCmd über den Didicated Administrator Connection (DAC). :

    C: \> sqlcmd -S Servername -U sa -P –A

Sobald Sie verbunden sind, führen Sie die folgenden Schritte aus, um den Speicher auf 4 GB einzustellen. Es sollte ausreichen, damit Sie die Verbindung mit dem Management Studio-Tool wiederherstellen können.

sp_configure 'Erweiterte Optionen anzeigen', 1;  
GEHEN  
RECONFIGURE;  
GEHEN  
sp_configure 'max server memory', 4096;  
GEHEN  
RECONFIGURE;  
GEHEN  

Weitere Informationen zum DAC finden Sie unter: Dedicated Administrator Connection (DAC) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx

Bruno M.
quelle
3

Ich hatte nur das gleiche Problem und hatte kein Glück, SSMS oder den DAC zu starten. Hoffentlich hilft dies der nächsten Person, die in Panik gerät.

Ich habe den SQL Server-Konfigurations-Manager (auf dem ich SQL 2017 ausführe) auf dem Server gestartet, im linken Bereich "SQL Server-Dienste" ausgewählt und dann im rechten Bereich mit der rechten Maustaste auf "SQL Server (MSSQLSERVER)" geklickt und wähle "Eigenschaften". Im Eigenschaftenfenster habe ich die Registerkarte "Startup Parameters" aufgerufen und den Startparameter "-f" hinzugefügt. Ich habe den SQL-Dienst neu gestartet und er wurde im Modus " Minimale Konfiguration " gestartet . Ich war dann in der Lage, in SSMS zu gelangen und die maximale Gedächtniseinstellung zu beheben. Ich ging dann zurück zur Registerkarte "Startup Parameters" und entfernte den Parameter "-f" und startete den Dienst erneut.

BD.
quelle
1

Gleiches Problem, der Speicher wurde aus Versehen zu niedrig eingestellt. Verbindung über DAC konnte nicht hergestellt werden.

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. Verbunden über SSMS direkt auf dem Server und konnte Eigenschaften erreichen und die richtigen Speichereinstellungen festlegen.
Vad
quelle
1

Dies erfolgt entweder mit dem Befehl net start / stop oder mit dem Befehl sqlserver.exe. Lassen Sie uns zunächst überprüfen, wie dies über den Befehl net start / stop erfolgt. Die Syntax für den Befehl net start / stop lautet NET START. Der Dienstname kann wie unten gezeigt abgerufen werden.

  1. Geben Sie services.msc in das Fenster "RUN" ein und klicken Sie auf "OK". Dies öffnet das Service-Dialogfeld.
  2. Navigieren Sie zu der SQL Server-Instanz, für die Sie den Dienstnamen abrufen möchten, und doppelklicken Sie darauf. Dadurch wird das Eigenschaftsdialogfeld für diese Instanz geöffnet. Kopieren Sie den dort aufgeführten Servicenamen.
  3. --- enable service ist ein Einzelbenutzermodus

    C: \ Programme \ Microsoft SQL Server \ 130 \ Tools \ Binn> net start "SQL Server (MSSQLSERVER)" / f / m Der SQL Server-Dienst (MSSQLSERVER) wird gestartet. Der SQL Server-Dienst (MSSQLSERVER) wurde erfolgreich gestartet. Verbunden über SSMS direkt auf dem Server und konnte Eigenschaften erreichen und die richtigen Speichereinstellungen festlegen. Oder führen Sie den folgenden Befehl aus: - sp_configure 'show advanced options', 1; GO RECONFIGURE; GO sp_configure 'max server memory', 4096; GO RECONFIGURE; GEHEN

- Verlassen Sie den Einzelbenutzermodus, indem Sie den Dienst beenden

C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net stop "SQL Server (MSSQL
SERVER)"

Um die SQL-Instanz im Mehrbenutzermodus zu starten, stoppen Sie den Dienst mit net stop wie oben gezeigt und starten Sie ihn dann ohne Angabe des Parameters \ m wie unten gezeigt.

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.

Hierbei ist zu beachten, dass beim Starten der SQL Server-Instanz der SQL Server-Agent-Dienst nicht gestartet wird. Um den SQL Server-Agenten zu starten, rufen Sie den Dienstnamen mit der oben angegebenen Methode ab und starten Sie ihn wie in der obigen Abbildung gezeigt. Oder Gehe zu Diensten und aktiviere sie.

Poonam Bhatia
quelle