MAX SERVER MEMORY < MINIMO

Surgiu ontem uma dúvida de um participante em um dos grupos que participo no Whatsapp, o pessoal ajudou na resolução do problema e eu resolvi simular o cenário, dividindo uma possível solução, essa não é a única forma, também pode-se solucionar usando o DAC (Dedicated Admin Connection), mas como nem todo mundo habilita o recurso e na prática o acesso é da mesma forma através do SQLCMD, eu optei em não me estender mais, apesar de parecer trivial nem todo mundo costuma usar o prompt para administração do SQL Server, e confesso que sou uma dessas pessoas.

Imaginem o seguinte cenário:

Um determinado usuário com permissões indevidas, resolveu alterar a quantidade de memória máxima do SQL Server, para o mínimo possível, fazendo com que o SQL parasse de responder, nesse post eu procurei simular o mesmo cenário e mostrar uma solução para ele.

Configuração Inicial

clip_image001

Configuração alterada para o mínimo

clip_image002

Erro ao tentar acessar após a redução de memória.

clip_image004

Inicialmente precisa parar os serviços do SQLServer e do Agent

clip_image006

Executar o CMD como administrador, e abrir duas janelas dele.

clip_image007

Na primeira tela do Command, deve-se navegar até o diretório do SQL que contém o executável do servidor que foi alterado,

clip_image008

Em seguida deve-se iniciar o SQL com o seguinte comando:

clip_image009

Onde:
-s :Permite iniciar uma instância nomeada do SQL Server. Sem o parâmetro -s definido, a instância padrão tentará iniciar. Você deve passar para o diretório BINN apropriado da instância em um prompt de comando antes de iniciar o sqlservr.exe. Por exemplo, se Instance1 tiver de usar \mssql$Instance1 para seus binários, o usuário deverá estar no diretório \mssql$instance1\binn para iniciar o sqlservr.exe -s instance1.
-f : Inicia uma instância do SQL Server com configuração mínima. Isso será útil se a definição de um valor de configuração (por exemplo, sobrecarga de confirmação de memória) impediu o servidor de ser iniciado. Iniciar o SQL Server no modo de configuração mínima coloca o SQL Server no modo de usuário único. Para obter mais informações, consulte a descrição de -m a seguir.

Na segunda janela do Command, deve-se iniciar o SQLCMD através da instrução abaixo, é necessário colocar no seguinte padrão <<servidor>>\instancia

clip_image010

clip_image011

Já no prompt do SQL, eu verifiquei a configuração do servidor para confirmar se a memória configurada estava realmente baixa, para isso usei o comando:

exec sp_configure

clip_image012

O retorno do comando abaixo mostra a quantidade minimum,maximum,config_value,run_value da memória do parametro ‘Max Server Memory (MB)’, no nosso exemplo,

o que nos importa é o parametro: config_value que está parametrizado para 0.

clip_image014

image

Executei o comando novamente, mas dessa vez setando o parametro ‘Max Server Memory (MB)’ para 1024, apesar de pequeno já nos permite acessar através do MMS

clip_image017

Após executar o comando é necessário executar o comando “reconfigure”, ele que vai persistir o valor que configuramos.

clip_image019

Ao executar novamente o comando exec sp_configure, ele já nos mostra o valor do config_value alterado para 1024

clip_image021

Em seguida é necessário reiniciar os serviços do SQL e do SQLAgent atrávés dos seguintes comandos:

NET START MSSQL$SQL2014
NET START SQLAGENT$SQL2014

clip_image023

Referencias

Opções de inicialização do SQLServer

https://msdn.microsoft.com/pt-br/library/ms190737.aspx

Utilitário SQLCMD

https://msdn.microsoft.com/pt-br/library/ms162773(v=sql.120).aspx

 

Anúncios
MAX SERVER MEMORY < MINIMO

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s