Случайно выключил память SQL слишком мало, чтобы войти, как я могу это исправить?

14

Я уменьшил максимальный объем памяти моего экземпляра SQL Server до 15 МБ ... Теперь я не могу войти, чтобы увеличить его. Как я могу увеличить максимальную память без входа в систему?

Версия SQL 2008 R2

CamronBute
источник

Ответы:

18

Соединитесь с помощью выделенного соединения администратора (DAC) , которому гарантировано минимальное количество ресурсов для решения проблем, подобных этой. Например, если вы подключаетесь через Management Studio, запустите окно «Новый запрос» и просто введите ADMIN:servernameвместо того, servernameчтобы запросить подключение. Проигнорируйте все ошибки, которые вы получаете, которые, как правило, являются доброкачественными, поскольку они связаны с обозревателем объектов, раскрывающимся списком базы данных, IntelliSense и т. Д., Также пытающимися подключиться от вашего имени (разрешено только одно подключение DAC).

Больше информации здесь , здесь , и некоторые проблемы здесь .

Аарон Бертран
источник
7

В качестве альтернативы (поскольку это происходило дважды, а у меня не работал трюк ЦАП), отключите службу SQL Server, а затем верните ее в режим «минимальной конфигурации», который является модифицированной версией однопользовательского режима.

В командной строке перейдите к пути к исполняемому файлу sqlservr.exe, указанному в службе. Но вместо того, чтобы бежать sqlservr.exe -m, используйте sqlservr.exe -f"sqlcmd". Это разрешит ТОЛЬКО подключения из названного приложения, поэтому все остальное не удастся, но вы сможете подключиться, изменить настройку, выполнить команду SHUTDOWN из SQLCMD, а затем вызвать ее в обычном режиме.

mbourgon
источник
5

Из командной строки запустите 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

Бруно М.
источник
3

У меня просто была та же проблема, и мне не повезло с запуском SSMS или DAC, так что, надеюсь, это поможет следующему человеку, который находится в панике.

Я запустил диспетчер конфигурации SQL Server (я использую SQL 2017) на сервере, выбрал «Службы SQL Server» на левой панели и затем щелкнул правой кнопкой мыши «SQL Server (MSSQLSERVER)» на правой панели. и выберите «свойства». В окне «Свойства» я перешел на вкладку «Параметры запуска» и добавил параметр запуска «-f». Я перезапустил службу SQL, и она запустилась в режиме « минимальной конфигурации ». Затем я смог войти в SSMS и исправить настройку Max Memory. Затем я вернулся на вкладку «Параметры запуска», удалил параметр «-f» и перезапустил службу еще раз.

BD.
источник
1

Та же проблема, память была установлена ​​слишком низкой по ошибке. Не удалось подключиться с помощью ЦАП, сделал следующее:

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. Подключился через SSMS напрямую к серверу и смог получить доступ к свойствам и установить правильные настройки памяти.
Vad
источник
1

Это можно сделать с помощью команды net start / stop или команды sqlserver.exe. Давайте сначала проверим, как это делается с помощью команды net start / stop. Синтаксис команды net start / stop - NET START. Имя службы можно получить, как показано ниже.

  1. Введите services.msc в окне «RUN» и нажмите «ОК». Это откроет диалоговое окно службы.
  2. Перейдите к экземпляру SQL Server, для которого вы хотите получить имя службы, и дважды щелкните его. Это откроет диалоговое окно свойств для этого экземпляра. Скопируйте имя сервиса, указанное там.
  3. --- включить сервис в однопользовательском режиме

    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, получите имя службы, используя метод, описанный выше, и запустите его, как показано на рисунке выше. Или зайдите в сервисы и включите его.

Poonam Bhatia
источник