Habilitando e utilizando a conexão remota dedicada para administrador (DAC) no SQL Server

Visualizações: 1.121
Tempo de Leitura: 4 minutos

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?

SQL Server - Erro de conexão

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:

SQL Server - sp_configure remote admin connections

Visualizando a conexão DAC pela DMV sys.endpoints
SQL Server - DAC DMV Endpoints

Como ativar o DAC?

Vou demonstrar duas formas: Utilizando T-SQL e pelo SQL Server Management Studio.

Utilizando Transact-SQL

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:

SQL Server - Ativar DAC 1

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 - Ativar DAC 2

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:
SQL Server - DAC SQLCMD

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:
SQL Server - DAC Management Studio

SQL Server - DAC Management Studio 2

Para identificar quem está utilizando a conexão DAC na instância:

SQL Server - DAC Remote Connections Who Is Using 2

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