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
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
Odpowiedzi:
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:servername
zamiast, servername
gdy 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 .
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.
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
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ę.
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:
net start "SQL Server (MSSQLSERVER)" /f /m
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.
--- 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.