Acidentalmente, a memória SQL foi muito baixa para efetuar login, como faço para corrigir?

14

Recusei a Memória máxima da minha instância do SQL Server para 15 MB ... Agora não consigo fazer login para aumentá-la. Como posso aumentar a memória máxima sem fazer login?

A versão é SQL 2008 R2

CamronBute
fonte

Respostas:

18

Conecte-se usando o DAC (Dedicated Administrator Connection) , que garante uma quantidade mínima de recursos para resolver problemas exatamente como este. Por exemplo, se você estiver se conectando via Management Studio, inicie uma janela Nova Consulta e digite apenas em ADMIN:servernamevez de servernamequando solicitar a conexão. Ignore os erros que você obtiver, que geralmente são benignos, pois estão associados ao Pesquisador de Objetos, à lista suspensa do banco de dados, ao IntelliSense etc. também tentando se conectar em seu nome (apenas uma conexão DAC é permitida).

Mais informações aqui , aqui e algumas soluções de problemas aqui .

Aaron Bertrand
fonte
7

Como alternativa (já que isso aconteceu duas vezes antes e o truque do DAC não funcionou para mim), desligue o serviço do SQL Server e traga-o novamente no modo "configuração mínima", que é uma versão modificada do modo de usuário único.

Através da linha de comando, vá para o caminho do executável sqlservr.exe, conforme listado no serviço. Mas, em vez de executar sqlservr.exe -m, use sqlservr.exe -f"sqlcmd". Isso permitirá apenas conexões do aplicativo nomeado, para que tudo o mais falhe, mas você poderá se conectar, alterar a configuração, emitir o comando SHUTDOWN no ​​SQLCMD e, em seguida, abrir normalmente.

mbourgon
fonte
4

No prompt de comando, inicie o sqlCmd usando a Conexão do Administrador Autorizado (DAC). :

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

Depois de conectado, execute o seguinte para definir a memória para 4Gigs. deve ser o suficiente para permitir que você se reconecte usando a ferramenta Management Studio.

sp_configure 'mostrar opções avançadas', 1;  
IR  
RECONFIGURAR;  
IR  
sp_configure 'memória máxima do servidor', 4096;  
IR  
RECONFIGURAR;  
IR  

Para obter mais informações sobre o DAC, consulte: DAC (Dedicated Administrator Connection) https://msdn.microsoft.com/en-us/library/ms189595(v=sql.105).aspx

Bruno M.
fonte
3

Eu apenas tive o mesmo problema e não tive sorte com o lançamento do SSMS ou do DAC, por isso espero que isso ajude a próxima pessoa que está em pânico.

Iniciei o SQL Server Configuration Manager (estou executando o SQL 2017) no servidor, selecione "SQL Server Services" no painel esquerdo e cliquei com o botão direito do mouse em "SQL Server (MSSQLSERVER)" no painel direito e escolha "propriedades". Na janela Propriedades, fui para a guia "Parâmetros de inicialização" e adicionei o parâmetro de inicialização "-f". Reiniciei o serviço SQL e ele foi iniciado no modo " configuração mínima ". Pude entrar no SSMS e corrigir a configuração de Memória máxima. Voltei à guia "Parâmetros de inicialização", removi o parâmetro "-f" e reiniciei o serviço novamente.

BD.
fonte
1

Mesmo problema, a memória foi ajustada para muito baixa por engano. Não foi possível conectar usando o DAC, faça o seguinte:

  1. net start "SQL Server (MSSQLSERVER)" /f /m
  2. Conectado usando o SSMS diretamente no servidor e foi capaz de acessar propriedades e definir as configurações de memória corretas.
Vad
fonte
1

Isso é feito usando o comando net start / stop ou pelo comando sqlserver.exe. Vamos primeiro verificar como isso é feito através do comando net start / stop A sintaxe para um comando net start / stop é NET START O nome do serviço pode ser obtido como mostrado abaixo.

  1. Digite services.msc na janela "EXECUTAR" e clique em OK. Isso abrirá a caixa de diálogo de serviço.
  2. Navegue até a instância do SQL Server para a qual você deseja obter o nome do serviço e clique duas vezes nele. Isso abrirá a caixa de diálogo de propriedades para essa instância. Copie o nome do serviço listado lá.
  3. --- ativar serviço é um modo de usuário único

    C: \ Arquivos de programas \ Microsoft SQL Server \ 130 \ Tools \ Binn> net start "SQL Server (MSSQLSERVER)" / f / m O serviço SQL Server (MSSQLSERVER) está sendo iniciado. O serviço SQL Server (MSSQLSERVER) foi iniciado com êxito. Conectou-se usando o SSMS diretamente no servidor e conseguiu acessar as propriedades e definir as configurações de memória corretas. Ou execute o comando abaixo: - sp_configure 'show advanced options', 1; VAI RECONFIGURAR; GO sp_configure 'memória máxima do servidor', 4096; VAI RECONFIGURAR; IR

- saia do modo de usuário único, interrompendo o serviço

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

Para iniciar a Instância SQL no modo multiusuário, pare o serviço usando net stop como mostrado acima e inicie-o sem especificar o parâmetro \ m, como mostrado abaixo.

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.

Uma coisa a observar aqui é que iniciar a instância do SQL Server não inicia o serviço SQL Server Agent. Para iniciar o SQL Server Agent, obtenha o nome do serviço usando o método compartilhado acima e inicie-o conforme mostrado na imagem acima. Ou Vá para serviços e ative-o.

Poonam bhatia
fonte