Fala galera, tudo bem? Quem ai já se viu em uma situação onde não sabia mais o que fazer para resolver? Isso já aconteceu com todo mundo não é mesmo? Quando falamos da vida do DBA SQL ele pode passar por isso também em alguns momentos e hoje eu quero te ensinar sobre uma funcionalidade que existe no SQL Server que pode te salvar em algum momento!
Imagine a seguinte situação: um dos clientes que a empresa em que você trabalha como DBA SQL Jr atende entra em contato com vocês porque o ambiente de banco de dados esta travado, não finaliza nada que esta executando e o pior ninguém consegue acessar a instância para ver o que é que esta acontecendo ali dentro que esta fazendo ela "congelar" dessa forma. Vocês então tentar conectar no ambiente e também não conseguem, de fato o ambiente esta totalmente travado. E agora? o que fazer?
Calma, existe uma luz no fim do túnel, mas é importante destacar que essa luz só vai existir se você fizer a lição de casa da forma correta, usando as boas práticas de configuração do SQL Server.
A Microsoft (já imaginando esse possível cenário) criou um recurso chamado DAC (Dedicated Administrator Connection), esse recurso quando configurado adequadamente mantem uma conexão aberta no ambiente com o mínimo de recurso, apenas para que mantenha uma sessão aberta mesmo, então, quando ocorrer o cenário onde não é possível abrir uma conexão nova como no exemplo citado mais acima, o DBA pode usar a conexão DAC (que já esta aberta) para se conectar e verificar o que esta acontecendo dentro da instância que esta a deixando travada. Talvez você possa estar se perguntando, não seria mais fácil reiniciar a instância? Isso iria derrubar todas as conexões e então ao subir novamente voltaria a funcionar bem. Essa até poderia ser uma saída mas não é a melhor, se fizer isso como você vai saber o que ocasionou o problema para ajustar e evitar que ocorra novamente? O ideal é ver o que causou para tratar e isso só será possível através do DAC.
Por padrão ele permite apenas a conexão local, cabe ao DBA fazer essa configuração para que possa ser usada de forma remota também (claro, isso deve ser feito antes, pois quando o problema ocorrer você não vai conseguir conectar da forma normal).
Você pode conferir se esta habilitado no modelo remoto com o comando abaixo.
sp_configure 'remote admin connections'
go
A coluna em destaque indica o valor configurado sendo 0 = local e 1 remoto.
A coluna run_value armazena o valor atual configurado.
Para habilitar é muito simples, você pode fazer isso com o comando a seguir.
sp_configure 'remote admin connections', 1
go
reconfigure with override
go
Ao conferir novamente, podemos ver que agora esta habilitado de forma remota (valor 1).
Vamos conectar agora na instância usando a conexão DAC pelo management studio, para isso vamos precisar abrir uma nova query.
É preciso fazer dessa forma porque só podemos ter uma conexão DAC por vez em uma instância, se você tentar se conectar normalmente na instância pelo pesquisador de objetos, apresentará erro pois o SQL Server entende que dali podem vir mais de uma conexão, o que não é permitido, então abra o management studio e sem ter nenhuma conexão aberta, clique em "nova consulta".
Após abrir uma nova query será aberta a tela de login conforme a imagem abaixo, você deve informar "ADMIN:" antes do nome da instância, dessa forma a instância irá entender que você deseja acessar através do recurso DAC. Informe o login e senha ou selecione o modo de autenticação do windows e conecte (vale destacar que é necessário a conexão com um login sysadmin).
Conexão realizada, muito bom! Agora execute o comando abaixo e veja que a sua sessão é a que esta marcada como a conexão DAC do ambiente.
SELECT @@spid SuaConexão, B.session_id SessãoDAC,A.name,B.connect_time
FROM sys.endpoints A
INNER JOIN sys.dm_exec_connections B ON A.endpoint_id = B.endpoint_id
WHERE A.is_admin_endpoint = 1
A partir desse momento, com a conexão feita você pode usar normalmente e identificar os ofensores do ambiente.
Gostou do post? Compartilha com seus colegas que querem ser um DBA SQL Server!
Nos acompanhe em nossas redes sociais!
Grupo VIP Telegram: DBA On boarding
Youtube(vídeos novos todas as quartas): DBA On boarding
Face & Instagram(conteúdo diário): DBA On boarding
Até a próxima, tchau!
Commenti