Habilitando DAC SQL Server

Olá pessoal, tudo certo?

No post de hoje vou comentar a respeito de uma conexão especial que poucos DBA’s habilitam ao configurar a instância, essa conexão está disponibilizada desde a versão SQL Server 2005, a Microsoft introduziu a feature chamada Dedicated Administrator Connection (DAC), essa conexão deve ser utilizada somente quando a instância não está respondendo e você não consegue realizar um troubleshoot para identificar o que está acontecendo.

É permitido apenas uma conexão na DAC por instância, e somente membros da role Sysadmin pode usar essa conexão.

A conexão DAC tem os recursos reservados para ela, se você verificar mais, os recursos na DMV sys.dm_os_schedulers, nela podemos verificar que existe um scheduler reservado para a DAC, para ela é reservada apenas uma thread, por isso ela deve ser utilizada somente para emergência e não para manutenção.

SELECT parent_node_id,scheduler_id,status,is_online
FROM
    sys.dm_os_schedulers 

Habilitando_DAC_sys.dm_os_schedulers

Por default a DAC vem desabilitada sendo necessário habilitar depois de instalar a instância, para isso podemos fazer tanto por comando como por interface.

Habilitando_DAC_sp_configure_show advanced_options

Para habilitar via comando:

sp_configure 'remote admin connections', 1
GO
RECONFIGURE
GO

Habilitando_DAC_sp_configure_show advanced_options_enabled

Habilitando_DAC_remote admin connections

Para habilitar por interface:

Clicar no nome da instância no object explorer => Facets => Surface Area Configuration, marcar TRUE para RemoteDacEnabled

Habilitando_DAC_GUI_Facets

Habilitando_DAC_GUI_Surface

Você pode utilizar DAC tanto conectando via SQLCMD ou pelo Management Studio, para conectar utilizando o SQLCMD ao final do comando de conexão você deve adicionar o parâmetro -A, para conectar utilizando o Management Studio você tem que adicionar o parâmetro ADMIN antes do nome da instância.

Conectando utilizando SQLCMD

SQLCMD -S [SQL Server Name] -U [User Name] -P [Password] -A

Habilitando_DAC_conect_sqlcmd

Conectando utilizando o Management Studio

Como foi dito é permitido somente um conexão utilizando DAC, então, não é possível conectar utilizando o object explorer, você tem que abrir uma nova query e conectar.

Habilitando_DAC_conect_ssms

Habilitando_DAC_conect_ssms_query

Por default a porta padrão da DAC é a 1434, para alterar a porta, não é como alterar a porta padrão SQL Server que você altera no SQL Server Configuration Manager, para alterar a porta padrão da DAC você tem que alterar no registro do servidor e depois criar uma regra no firewall se ele estiver habilitado.

--Script para descobrir em qual porta o SQL Server esta sendo executado.
SELECT  e.name ,
        e.endpoint_id ,
        e.principal_id ,
        e.protocol ,
        e.protocol_desc ,
        ec.local_net_address ,
        ec.local_tcp_port ,
        e.[type] ,
        e.type_desc ,
        e.[state] ,
        e.state_desc ,
        e.is_admin_endpoint
FROM    sys.endpoints e
        LEFT OUTER JOIN sys.dm_exec_connections ec ON ec.endpoint_id = e.endpoint_id
GROUP BY e.name ,
        e.endpoint_id ,
        e.principal_id ,
        e.protocol ,
        e.protocol_desc ,
        ec.local_net_address ,
        ec.local_tcp_port ,
        e.[type] ,
        e.type_desc ,
        e.[state] ,
        e.state_desc ,
        e.is_admin_endpoint 

Habilitando_DAC_port_running

Alterando a porta default DAC

Para alterar a porta default da DAC, você tem que alterar o registro na HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10.\MSSQLServer\SuperSocketNetLib\AdminConnection\Tcp, e alterar o valor do registro TcpDynamicPorts para o numero da porta que você deseja configurar, após isso você tem que reiniciar o serviço do SQL Server.

Habilitando_DAC_conect_ssms

Habilitando_DAC_changeport_running

Bom pessoal por hoje é isso, espero ter agregado conhecimento.

O Rodrigo Crespi (Blog/Twitter) da CrespiDB fez um post sobre DAC, nessa semana que pode complementar o assunto.

Referências:

Abraços,

Tiago Neves

2 Comments

Deixe uma resposta