Aguarde… Carregando

Casos do Dia a Dia – SQL Server alcançou o limite de 32767 conexões em produção

Fala Galera,

Esse é mais um post para compartilhar minhas experiências do Dia a Dia de DBA com vocês.

Um cliente que atendo teve um problema onde não conseguia mais realizar conexões no SQL Server. O erro abaixo era gerado ao se tentar conectar no SQL Server:

“A severe error occurred on the current command. The results, if any, should be discarded”

Quando me conectei no ambiente o SQL já havia reiniciado e novas conexões já estavam liberadas no SQL. Ao olhar o error log, identifiquei o erro abaixo:

“Could not connect because the maximum number of ‘32767’ user connections has already been reached. The system administrator can use sp_configure to increase the maximum value. The connection has been closed. [CLIENT: <named pipe>]”

Em 10 anos e 6 meses trabalhando com SQL Server foi a primeira vez que vi um ambiente de produção estourar o limite de conexões do SQL Server, que são 32767 conexões.

Mas e aí? Quem abriu todas essas conexões?

Logo de imediato eu não consegui identificar quem abriu essas conexões que causaram o problema. Contudo, nesse cliente eu tinha um log da quantidade de conexões no SQL Server, exatamente igual ao desse post que escrevi abaixo:

http://www.fabriciolima.net/blog/2016/06/22/queries-do-dia-a-dia-monitorando-contadores-de-forma-simples-via-dmv/

Com esse log, consegui identificar que essas conexões estavam aumentando de forma gradual. Não era um aumento de conexão instantâneo que já travava o servidor, conforme pode ser visto abaixo:

PostConexoesSQL

Às 18:40h tínhamos 27.892 conexões. Às 19:01h tínhamos 32.539 conexões, que foi o último registro desse log. Ou seja, aumentou 5 mil conexões em 20 minutos, para chegar as 32 mil conexões demorou mais de uma hora.

Sabendo disso, criamos um Alerta para enviar um e-mail quando o número de conexões passasse de 1.000 conexões, que já era  um valor auto para esse ambiente.

No outro dia, esse e-mail chegou:

EmailAlertaConexoes

Encontramos a aplicação que estava deixando as conexões abertas. Uma procedure estava dando erro e as conexões estavam se acumulando ao invés de serem fechadas.

O pessoal corrigiu a aplicação e depois disso o problema não voltou a acontecer.

Ou seja, o log de conexões me ajudou a ver o crescimento de conexões e o alerta me ajudou a identificar um novo crescimento para tomarmos uma ação antes do servidor parar novamente.

Gostou dessa dica?

Cadastre seu e-mail para receber novos Posts e curta minha Página no Facebook para receber Dicas de Leituras e Eventos sobre SQL Server.

Confira mais experiências do Dia a Dia de um DBA no meu Treinamento de Tarefas do Dia a Dia de um DBA.

Até a próxima.

Abraços,

Fabrício Lima

MCITP – Database Administrator

Consultor e Instrutor SQL Server

Trabalha com SQL Server desde 2006

2 thoughts on “Casos do Dia a Dia – SQL Server alcançou o limite de 32767 conexões em produção

Deixe uma resposta

%d blogueiros gostam disto: