Olá pessoal,
Bom dia!
Neste post vou demonstrar como ativar/desativar o recurso de DAC (Dedicated Administrator Connection) remoto da instância SQL Server, verificar se o recurso está ativo e como utilizá-lo.
Introdução – O que é o DAC ?
Imagine na seguinte situação: Todos os workers threads da instância estão em uso e não é permitida mais a conexão com o banco, como você faria para analisar o que está acontecendo e tomar ações para resolver esse problema, uma vez que você não consegue nem se conectar?
Pensando nisso, a Microsoft criou o DAC, um recurso muito útil para o DBA pois ele permite a conexão à instância utilizando um recurso exclusivo e dedicado para Administradores de Bancos de Dados.
O seu funcionamento é bem simples: Uma vez ativado, a instância cria a conexão DAC no startup e deixa ela em standby, aguardando a conexão do DBA. Mesmo que a instância esteja sobrecarregada e sem workers disponíveis, essa conexão já está conectada ao banco de dados e poderá ser utilizada pelo DBA.
Vale lembrar que esse recurso só pode ser utilizado por usuários com permissão sysadmin e apenas um usuário pode utilizar essa conexão por vez.
Como saber se o DAC remoto está ativo?
Para identificar se esse recurso está habilitado na instância, basta utilizar a sp sp_configure:
1 |
EXEC sp_configure 'remote admin connections' |
Visualizando a conexão DAC pela DMV sys.endpoints
Como ativar o DAC?
Vou demonstrar duas formas: Utilizando T-SQL e pelo SQL Server Management Studio.
Utilizando Transact-SQL
1 2 3 4 5 6 7 |
Use master GO /* 0 = Apenas DAC local; 1 = DAC remoto */ sp_configure 'remote admin connections', 1 GO RECONFIGURE GO |
Utilizando o SQL Server Management Studio
Clique com o botão direito sobre a sua instância e selecione a opção “Facets”, conforme imagem abaixo:
Isso irá abrir a tela de “View Facets”. Na combo Facets, selecione “Surface Area Configuration” e defina o valor TRUE para o parâmetro “RemoteDacEnabled”.
SQL Server Express e a conexão DAC
Por padrão, o SQL Server Express não possui o recurso de conexão DAC por padrão. Entretanto, isso pode ser habilitado utilizando uma trace flag. Essa é a terceira forma de ativar o conexão DAC, que é utilizando a trace flag 7806 nos parâmetros de inicialização do SQL Server Express. Essa terceira opção é especialmente útil para cenários onde você tem algum problema que impede o login do usuário (Ex: Trigger de Logon), a conexão DAC não está ativada e você não está conseguindo logar na instância.
Para ativá-la, basta abrir o SQL Server Configuration Manager, e visualizar as propriedades da instância que você deseja habilitar o DAC:
Na tela de configuração da instância, vá até a aba “Startup Parameters” e adicione o parâmetro “-T7806”:
Após confirmar as alterações, será necessário reiniciar o serviço do SQL Server Express para que as alterações entrem em vigor. Após isso, você verá que já é possível se conectar na instância utilizando a conexão DAC.
Conectando na instância utilizando o DAC
Utilizando o SQLCMD
Para se conectar à instância pelo SQLCMD utilizando o DAC, basta utilizar o parâmetro -A, conforme exemplo abaixo:
Quer saber mais sobre o SQLCMD, o utilitário de linha de comando do SQL Server? Acesse este link.
Utilizando o SQL Server Management Studio
Para se conectar à instância pelo SQL Server Management Studio utilizando o DAC, basta utilizar o prefixo ADMIN: antes do nome da instância no momento da conexão, conforme exemplo abaixo:
Para identificar quem está utilizando a conexão DAC na instância:
1 2 3 4 5 6 7 8 9 10 11 12 |
SELECT B.session_id, A.name, B.connect_time, B.last_read, B.last_write, B.client_net_address FROM sys.endpoints A INNER JOIN sys.dm_exec_connections B ON A.endpoint_id = B.endpoint_id WHERE A.is_admin_endpoint = 1 |
Importante: Como é permitida apenas uma conexão DAC por vez, não é possível utilizá-la no Object Explorer, apenas na tela de New Query.
Caso você esteja com dificuldade para utilizar a conexão DAC em um ambiente em que o serviço do SQL Browser esteja desativado, dê uma lida nesse artigo: SQL Server – Como conectar utilizando a conexão DAC (Dedicated Admin Connection) sem o SQL Browser.
Obrigado pela visita e até a próxima!
sql, sql server, dac, Dedicated Administrator Connection, Remote Admin Connections, não consigo conectar, conexão de dba, erro de conexão, timeout no login, timeout conexão
sql, sql server, dac, Dedicated Administrator Connection, Remote Admin Connections, não consigo conectar, conexão de dba, erro de conexão, timeout no login, timeout conexão