SQL Server DAC – Dedicated Administrator Connection

By | June 12, 2018

Selamlar,

SQL Server Health Check yaparken genelde uyguladığım ve aktif ettiğim özelliklerden birinden bahsediyor olacağım bugün ve bu konuyu daha önce yazdığı hatırlıyorum fakat bulamadım 🙂 Bu yüzden DAC ( Dedicated Administrator Connection ) ile ilgili yazıyı yazmak şimdiye nasip oldu.

Dedicated Administrator Connection yani SQL Server DAC özelliği SQL Server 2005 ile hayatımıza girdi ve özellikle zorda kalındığında bir DBA’in kullanacağı arka kapıdır.

Şöyle düşünün, SQL Server o kadar yoğun performans tüketimi sağlıyor ki login olmayı başaramıyorsunuz. ( Kaynak yetersizliği yada aşırı tüketim sonucu yeni bir bağlantıyı kabul etmediği durumlar olabiliyor. ) Böyle durumlarda DAC hayatınızı kurtarabilir. DAC özelliğini aktif etmek için aşağıdaki kod bloğunu kullanmanızı gerekmektedir.

EXEC sp_configure 'remote admin connections', 1;
GO
RECONFIGURE
GO

DAC özelliği ile login olacağınız kullanıcının sysadmin yetkisine sahip olması gerekmektedir ve tek bir bağlantı için kullanılabilir. Birden fazla DAC bağlantısına izin verilmiyor.

DAC özelliğini aktif ettikten sonra hem SQL Server Management Studio üzerinden hemde komut satırından (SQLCMD) ile erişim sağlayabiliriz.

SSMS üzerinden erişim için ;

ServerName bilgisinde gördüğünüz gibi ADMIN: gibi bir ifade var, bu DAC özelliğini kullandığımızı gösterir. Yukarıdaki resimde Localhost’a DAC özelliği ile eriştiğimi gösteriyorum. Fakat Connect dediğimde aşağıdaki gibi bir hata alıyor olacağım.

Hata Kodu : Dedicated administrator connections are not supported via SSMS as it establishes multiple connections by design.

Çözümü ise connection tipinin değiştirilmesi gerektiğidir. Yani connect to Server ile değil de Connect to database Engine Query ile erişmeniz gerekmektedir. Aşağıdaki gibi erişebilirsiniz.

ve ServerName bölümüne ADMIN:Localhost yazıp sysadmin yetkisine sahip bir kullanıcı ile login oluyorum.

Sonuc ;

DOS komut satırında SQLCMD ile -A (Administrator) parametresini vererek erişebilirsiniz.
Örnek : sqlcmd -S ServerName -U UserName -P Password -A

DAC ile ilgili bilinmesi gerekenler:
  • Her bir SQL Server instance’ı için aynı anda sadece bir adet DAC erişimi yapılabilir.
  • DAC ile erişecek kullanıcının sysadmin rolüne sahip olması gerekir.
  • DAC ile kullanabileceğiniz komutlar sınırlıdır. Örneğin DAC ile RESTORE, BACKUP komutlarını kullanamazsınız.
  • DAC default 1434 nolu portu kullanır. DAC’ın hangi portu kullandığını SQL Server Error Log’undan öğrenebilirsiniz. SQL Server servisi başlatıldığında DAC ile ilgili olarak error log’a aşağıdaki gibi mesajı yazar:
    Dedicated admin connection support was established for listening locally on port 1434.
  • Express sürümünde 7806 nolu trace flag’ı kullanmadan DAC ı kullanamazsınız.

Ayrıca Brent Ozar’ın “sp_Blitz” health check scriptini de kullandığınızda eğer ki bu özellik disable ise uyarı olarak size bildiri de bulunur. Farklı bir içerikte görüşmek üzere.

Leave a Reply

Your email address will not be published. Required fields are marked *