Przypadkowo wyłączono pamięć SQL zbyt małą, aby się zalogować, jak to naprawić?

14

Zmniejszyłem maksymalną pamięć mojej instancji SQL Server do 15 MB ... Teraz nie mogę się zalogować, aby ją zwiększyć. Jak mogę zwiększyć maksymalną pamięć bez logowania?

Wersja to SQL 2008 R2

CamronBute
źródło

Odpowiedzi:

18

Połącz za pomocą Dedicated Administrator Connection (DAC) , który gwarantuje minimalną ilość zasobów w celu rozwiązania problemów dokładnie takich jak ten. Na przykład, jeśli łączysz się za pośrednictwem Management Studio, uruchom okno Nowe zapytanie i po prostu wpisz ADMIN:servernamezamiast, servernamegdy pojawi się monit o połączenie. Zignoruj ​​wszelkie błędy, które zwykle są łagodne, ponieważ są powiązane z Object Explorer, listą rozwijaną bazy danych, IntelliSense itp., Również próbującymi połączyć się w Twoim imieniu (dozwolone jest tylko jedno połączenie DAC).

Więcej informacji tutaj , tutaj i niektóre rozwiązania problemów tutaj .

Aaron Bertrand
źródło
8

Alternatywnie (ponieważ zdarzyło się to wcześniej dwa razy, a sztuczka DAC nie działała dla mnie), wyłącz usługę SQL Server, a następnie przywróć ją w trybie „minimalnej konfiguracji”, który jest zmodyfikowaną wersją trybu pojedynczego użytkownika.

Za pomocą wiersza polecenia przejdź do ścieżki pliku wykonywalnego sqlservr.exe wymienionego w usłudze. Ale zamiast biegać sqlservr.exe -m, użyj sqlservr.exe -f"sqlcmd". Pozwoli to TYLKO na połączenia z nazwanej aplikacji, więc wszystko inne zawiedzie, ale będziesz w stanie połączyć się, zmienić ustawienie, wydać polecenie SHUTDOWN z poziomu SQLCMD, a następnie wywołać go normalnie.

mbourgon
źródło
6

W wierszu polecenia uruchom program sqlCmd przy użyciu Didicated Administrator Connection (DAC). :

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

Po nawiązaniu połączenia wykonaj następujące czynności, aby ustawić pamięć na 4Gigs. powinno wystarczyć, aby ponownie połączyć się za pomocą narzędzia Management studio.

sp_configure 'pokaż opcje zaawansowane', 1;  
UDAĆ SIĘ  
RECONFIGURE;  
UDAĆ SIĘ  
sp_configure „maksymalna pamięć serwera”, 4096;  
UDAĆ SIĘ  
RECONFIGURE;  
UDAĆ SIĘ  

Więcej na temat DAC patrz: Dedicated Administrator Connection (DAC) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx

Bruno M.
źródło
3

Właśnie miałem ten sam problem i nie miałem szczęścia z uruchomieniem SSMS lub DAC, więc mam nadzieję, że pomoże to kolejnej osobie, która wpadnie w panikę.

Uruchomiłem SQL Server Configuration Manager (uruchamiam SQL 2017) na serwerze, wybrałem „SQL Server Services” w lewym okienku, a następnie prawym przyciskiem myszy kliknąłem „SQL Server (MSSQLSERVER)” w prawym panelu i wybierz „właściwości”. W oknie Właściwości poszedłem do zakładki „Parametry uruchamiania” i dodałem parametr uruchamiania „-f”. Zrestartowałem usługę SQL i uruchomiłem ją w trybie „ minimalnej konfiguracji ”. Byłem wtedy w stanie dostać się do SSMS i poprawić ustawienie Max Memory. Następnie wróciłem do karty „Parametry uruchamiania”, usunąłem parametr „-f” i ponownie uruchomiłem usługę.

BD.
źródło
1

Ten sam problem, przez pomyłkę pamięć była ustawiona zbyt nisko. Nie można połączyć się za pomocą DAC, wykonaj następujące czynności:

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. Połączony za pomocą SSMS bezpośrednio na serwerze i był w stanie uzyskać dostęp do właściwości i ustawić prawidłowe ustawienia pamięci.
Vad
źródło
1

Można to zrobić za pomocą polecenia net start / stop lub polecenia sqlserver.exe. Sprawdźmy najpierw, jak to się dzieje za pomocą polecenia net start / stop Składnia polecenia net start / stop to NET START. Nazwę usługi można uzyskać, jak pokazano poniżej.

  1. Wpisz services.msc w oknie „RUN” i kliknij OK. Spowoduje to otwarcie okna dialogowego usługi.
  2. Przejdź do wystąpienia programu SQL Server, dla którego chcesz uzyskać nazwę usługi, i kliknij ją dwukrotnie. Spowoduje to otwarcie okna dialogowego właściwości dla tego wystąpienia. Skopiuj wymienioną tam nazwę usługi.
  3. --- Włącz usługę to tryb dla jednego użytkownika

    C: \ Program Files \ Microsoft SQL Server \ 130 \ Tools \ Binn> net start "SQL Server (MSSQLSERVER)" / f / m Uruchamia się usługa SQL Server (MSSQLSERVER). Usługa SQL Server (MSSQLSERVER) została uruchomiona pomyślnie. Połączony za pomocą SSMS bezpośrednio na serwerze i był w stanie uzyskać dostęp do właściwości i ustawić prawidłowe ustawienia pamięci. Lub uruchom poniższe polecenie: - sp_configure 'pokaż opcje zaawansowane', 1; GO RECONFIGURE; GO sp_configure „maksymalna pamięć serwera”, 4096; GO RECONFIGURE; UDAĆ SIĘ

- wyjdź z trybu jednego użytkownika, zatrzymując usługę

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

Aby uruchomić wystąpienie SQL w trybie wielu użytkowników, zatrzymaj usługę przy użyciu polecenia Net Stop, jak pokazano powyżej, a następnie uruchom ją bez określania parametru \ m, jak pokazano poniżej.

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.

Należy tutaj zauważyć, że uruchomienie SQL Server Instance nie uruchamia usługi SQL Server Agent. Aby uruchomić agenta programu SQL Server, uzyskaj nazwę usługi przy użyciu metody udostępnionej powyżej i uruchom ją, jak pokazano na powyższym obrazie. Lub Przejdź do usług i włącz je.

Poonam bhatia
źródło