Я уменьшил максимальный объем памяти моего экземпляра SQL Server до 15 МБ ... Теперь я не могу войти, чтобы увеличить его. Как я могу увеличить максимальную память без входа в систему?
Версия SQL 2008 R2
источник
Я уменьшил максимальный объем памяти моего экземпляра SQL Server до 15 МБ ... Теперь я не могу войти, чтобы увеличить его. Как я могу увеличить максимальную память без входа в систему?
Версия SQL 2008 R2
Соединитесь с помощью выделенного соединения администратора (DAC) , которому гарантировано минимальное количество ресурсов для решения проблем, подобных этой. Например, если вы подключаетесь через Management Studio, запустите окно «Новый запрос» и просто введите ADMIN:servername
вместо того, servername
чтобы запросить подключение. Проигнорируйте все ошибки, которые вы получаете, которые, как правило, являются доброкачественными, поскольку они связаны с обозревателем объектов, раскрывающимся списком базы данных, IntelliSense и т. Д., Также пытающимися подключиться от вашего имени (разрешено только одно подключение DAC).
Больше информации здесь , здесь , и некоторые проблемы здесь .
В качестве альтернативы (поскольку это происходило дважды, а у меня не работал трюк ЦАП), отключите службу SQL Server, а затем верните ее в режим «минимальной конфигурации», который является модифицированной версией однопользовательского режима.
В командной строке перейдите к пути к исполняемому файлу sqlservr.exe, указанному в службе. Но вместо того, чтобы бежать sqlservr.exe -m
, используйте sqlservr.exe -f"sqlcmd"
. Это разрешит ТОЛЬКО подключения из названного приложения, поэтому все остальное не удастся, но вы сможете подключиться, изменить настройку, выполнить команду SHUTDOWN из SQLCMD, а затем вызвать ее в обычном режиме.
Из командной строки запустите sqlCmd, используя соединение с администратором (DAC). :
C: \> sqlcmd -S имя_сервера -U sa -P –A
После подключения выполните следующее, чтобы установить память на 4 гигабайта. этого должно быть достаточно для повторного подключения с помощью инструмента Management studio.
sp_configure 'показать дополнительные параметры', 1; ИДТИ RECONFIGURE; ИДТИ sp_configure 'max server memory', 4096; ИДТИ RECONFIGURE; ИДТИ
Подробнее о ЦАП см. Выделенное соединение администратора (DAC) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx
У меня просто была та же проблема, и мне не повезло с запуском SSMS или DAC, так что, надеюсь, это поможет следующему человеку, который находится в панике.
Я запустил диспетчер конфигурации SQL Server (я использую SQL 2017) на сервере, выбрал «Службы SQL Server» на левой панели и затем щелкнул правой кнопкой мыши «SQL Server (MSSQLSERVER)» на правой панели. и выберите «свойства». В окне «Свойства» я перешел на вкладку «Параметры запуска» и добавил параметр запуска «-f». Я перезапустил службу SQL, и она запустилась в режиме « минимальной конфигурации ». Затем я смог войти в SSMS и исправить настройку Max Memory. Затем я вернулся на вкладку «Параметры запуска», удалил параметр «-f» и перезапустил службу еще раз.
Та же проблема, память была установлена слишком низкой по ошибке. Не удалось подключиться с помощью ЦАП, сделал следующее:
net start "SQL Server (MSSQLSERVER)" /f /m
Это можно сделать с помощью команды net start / stop или команды sqlserver.exe. Давайте сначала проверим, как это делается с помощью команды net start / stop. Синтаксис команды net start / stop - NET START. Имя службы можно получить, как показано ниже.
--- включить сервис в однопользовательском режиме
C: \ Program Files \ Microsoft SQL Server \ 130 \ Tools \ Binn> net start "SQL Server (MSSQLSERVER)" / f / m Служба SQL Server (MSSQLSERVER) запускается. Служба SQL Server (MSSQLSERVER) была успешно запущена. Подключился через SSMS напрямую к серверу и смог получить доступ к свойствам и установить правильные настройки памяти. Или выполните команду ниже: - sp_configure 'show advanced options', 1; ПЕРЕЙТИ РЕКОНФИГУРАЦИЮ; GO sp_configure 'max server memory', 4096; ПЕРЕЙТИ РЕКОНФИГУРАЦИЮ; ИДТИ
- выйти из однопользовательского режима, остановив службу
C:\Program Files\Microsoft SQL Server\130\Tools\Binn>net stop "SQL Server (MSSQL
SERVER)"
Чтобы запустить экземпляр SQL в многопользовательском режиме, остановите службу с помощью net stop, как показано выше, а затем запустите его, не указав параметр \ m, как показано ниже.
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.
Здесь следует отметить одну вещь: запуск экземпляра SQL Server не запускает службу агента SQL Server. Чтобы запустить агент SQL Server, получите имя службы, используя метод, описанный выше, и запустите его, как показано на рисунке выше. Или зайдите в сервисы и включите его.