Veritabanı yöneticileri için teşhis bağlantısı

SQL Serverstandart sunucu bağlantılarını mümkün olmadığı durumlarda özel tanı bağlantı yöneticileri için sağlar. Bu teşhis bağlantı erişmek yöneticinin SQL ServerTanılama sorguları yürütmek ve sorun giderme sorunları bile SQL Serverstandart bağlantı isteklerine yanıt vermiyor.

Bu adanmış yönetici bağlantısı (dac) şifreleme ve diğer güvenlik özelliklerini destekler SQL Server. dac yalnızca kullanıcı içeriği başka bir yönetici kullanıcı değiştirmek sağlar.

SQL Serveryapar, başarılı, ama aşırı durumlarda bu bağlanmak dac yapmak her girişimi başarılı olmayabilir.

dac ile bağlanma

Varsayılan olarak, bağlantı sunucu üzerinde çalışan bir istemci yalnızca izin verilir. Ağ bağlantıları, sürece onlar kullanılarak yapılandırılan verilmez sp_configuresaklı yordamı ile Uzak Yönetim bağlantıları seçeneği.

Yalnızca üyeleri SQL Server  sysadminrolü, dac kullanarak bağlanabilir.

dac kullanılabilen ve desteklenen üzerinden sqlcmd komut istemi yardımcı programı özel yönetici anahtarını kullanarak (-A). Kullanma hakkında daha fazla bilgi için sqlcmdbakın Sqlcmd Scripting değişkenleri ile kullanma. İsmin de bağlayabilirsiniz admin: biçiminde örnek adı sqlcmd -Sadmin: <instance_name>. de bir dac dan başlatabilir bir SQL Server Management StudioBağlanarak sorgu Düzenleyicisi'ni admin:<instance_name>.

Kısıtlamalar

Yalnızca ender durumlarda sunucu sorunları tanılamak için dac var olduğundan, bağlantı üzerinde bazı kısıtlamalar vardır:

  • Bağlantı için kullanılabilir kaynaklar olduğunu garanti etmek için yalnızca bir dac örneği başına verilir SQL Server. dac bağlantı zaten etkinse, hata 17810 dac ile bağlanmak için yeni bir isteği reddedildi.

  • Kaynakları korumak için SQL Server Expressdac bağlantı noktasında bir izleme bayrağı 7806 başlatıldı sürece dinlemez.

  • dac ilk oturum açma ile ilgili varsayılan veritabanına bağlanmaya çalışır. Başarıyla bağlandıktan sonra bağlanabileceğiniz masterveritabanı. Varsayılan veritabanı çevrimdışı ya da aksi takdirde mevcut değil ise, bağlantı hatası 4060 döndürür. Bağlanmak için varsayılan veritabanı geçersiz kılar, ancak bu başarılı olur masteryerine aşağıdaki komutu kullanarak veritabanı:

    sqlcmd –A –d ana

    İçin bağlantı öneririz masterçünkü dac ile veritabanı masterkullanılabilir olması sağlanır, örneğini Veritabanı Altyapısıbaşlatılır.

  • SQL Serverdac ile paralel sorgular veya komutları çalıştıran yasaklar. Örneğin, dac ile aşağıdaki ifadelerden birini yürütme hatası 3637 oluşturulur:

    • RESTORE

    • YEDEKLEME

  • Yalnızca sınırlı kaynakları ile dac kullanılabilmesi için garanti edilir. dac (örneğin. kaynak yoğun sorguları çalıştırmak için kullanmayın. büyük tablo karmaşık birleşim) veya engelleyebilir sorgular. Bu, varolan sunucu sorunları bileşik dac önlemeye yardımcı olur. Eğer sen-si olmak-e engelleyebilir sorguları çalıştırmak olası engelleme senaryolarını önlemek için mümkünse anlık görüntü tabanlı yalıtım düzeyleri altında sorguyu çalıştırın; Aksi takdirde, hareket yalıtım düzeyi read UNCOMMITTED olarak ayarlayın ve 2000 milisaniye gibi kısa bir değer veya her LOCK_TIMEOUT değeri ayarlayın. Bu-ecek önlemek dac oturumu bloke. Ancak durumuna bağlı olan SQL Serverise, dac oturumu bir mandal üzerinde engellendi. cntrl-c kullanarak dac oturumu bitirmek mümkün olabilir, ancak garanti. Bu durumda, yeniden başlatmak için tek seçenek olabilir SQL Server.

  • Bağlantı ve dac ile sorun giderme garanti SQL Serverrezervler sınırlı kaynakları dac üzerinde Çalıştır komutları işlemek için. Bu kaynakları genellikle sadece yeterince basit tanılama ve aşağıda listelenen işlevleri, bu gibi sorun giderme.

Teorik olarak herhangi bir çalıştırabilirsiniz, ancak Transact-SQLdac üzerinde paralel yürütme yok açıklamada, aşağıdaki tanılama ve sorun giderme komutları kullanımını kısıtlamak önemle öneririz:

  • Gibi temel tanılama için dinamik yönetimi görünümleri sorgulama sys.dm_tran_lockskilitleme durumunu, sys.dm_os_memory_cache_countersönbellekleri, sağlığını kontrol etmek ve sys.dm_exec_requestsve sys.dm_exec_sessionsetkin oturumlar ve istekleri. Kaynak yoğun olan dinamik yönetimi görünümleri önlemek (örneğin, sys.dm_tran_version_storeTam Sürüm deposu tarar ve kapsamlı I/O neden olabilir) veya karmaşık birleşim kullanın. Performans etkileri hakkında daha fazla bilgi için bkz: özel belgelerine dinamik yönetimi görünümü.

  • Katalog görünümleri sorgulanıyor.

  • Temel dbcc komutları dbcc freeproccache, dbcc freesystemcache, dbcc dropcleanbuffers , ve dbcc sqlperf. Kaynak-yoğun komutları gibi çalışmıyor DBCC checkdb, dbcc DBREINDEX veya dbcc SHRINKDATABASE.

  • Transact-SQLKILL <spid> komut. Devlet bağlı SQL Server, KILL komutu her zaman başarılı olabilir; daha sonra yeniden başlatmak için tek seçenek olabilir SQL Server. Bazı genel kurallar şunlardır:

    • Sorgulayarak SPID aslında öldürüldü doğrulamak SELECT * FROM sys.dm_exec_sessions WHERE session_id = <spid>. Hiçbir satır döndürür, oturumun öldürüldü demektir.

    • Oturum hala varsa, sorguyu çalıştırarak bu oturuma atanan görevler olup olmadığını doğrulamak SELECT * FROM sys.dm_os_tasks WHERE session_id = <spid>. Görev orada görmek, büyük olasılıkla oturumunuzun halen öldürülür. Not Bu sizler alabilir ve tüm başarılı olmayabilir.

    • Eğer var hayır görevleri sys.dm_os_tasksBu oturum ile ilişkili ancak oturum kalır sys.dm_exec_sessions KILL komutu yürüttükten sonra mevcut işçi yok demek. Çalışan görevleri seçin (listelenen görev sys.dm_os_tasksgörüntülemek bir sessions_id <> NULL) ve o kadar çalışan özgür ile ilişkili oturumu öldürmek. Bu tek bir oturum öldürmek için yeterli olmayabilir unutmayın: birden fazla olanları öldürmek zorunda kalabilirsiniz.

dac bağlantı noktası

SQL Serverdinler: dac üzerinde tcp bağlantı noktası 1434 varsa veya tcp bağlantı noktası üzerine dinamik olarak atanan Veritabanı Altyapısıbaşlangıç. Hata günlüğünü dac dinlediği bağlantı noktası numarasını içerir. dac varsayılan olarak yalnızca yerel bağlantı noktası bağlantısını dinleyici kabul eder. Uzak Yönetim bağlantıları etkinleştiren bir kod örneği için bkz: Uzak Yönetim bağlantıları sunucu yapılandırma seçeneği.

Uzaktan yönetim bağlantı yapılandırıldıktan sonra dac dinleyiciyi yeniden başlatılmasını gerektirmeden etkin SQL Serverve istemci şimdi için dac uzaktan bağlanabilir. Uzaktan bağlantı kabul etmek dac dinleyiciyi etkinleştirebilirsiniz bile SQL Serverilk bağlanarak vermiyor SQL Serverdac kullanarak yerel olarak ve ardından yürütülen sp_configuresaklı yordamı bağlantı uzak bağlantıları kabul etmek için.

Küme yapılandırmalarında dac varsayılan olarak kapalı olacaktır. Kullanıcıların yürütebilirsiniz remote admin connectionseçeneği sp_configureUzaktan bağlantı erişmek dac dinleyicisini etkinleştirmek için. Eğer SQL Serververmiyor ve dac dinleyiciyi etkinleştirilmemişse, yeniden başlatmanız gerekebilir SQL Serverdac ile bağlanmak için. Bu nedenle, we recommend that you enable remote admin connectionskümelenmiş sistemlerde yapılandırma seçeneği.

dac bağlantı noktası tarafından dinamik olarak atanan SQL Serverbaşlatılırken. Varsayılan örneğine bağlanırken, dac kullanarak önler bir SQL ServerÇözümleme iletişim kuralı (ssrp) isteği SQL Server Browser Service bağlanırken. Önce tcp bağlantı noktası 1434 üzerinden bağlanır. Başarısız olursa, bağlantı noktası almak için bir ssrp çağrısı yapar. Eğer SQL Servertarayıcı ssrp isteklerini dinlemiyor, bağlantı isteği, bir hata döndürür. Numara dac dinlediği bağlantı noktasını bulmak için hata günlüğüne bakın. Eğer SQL Serveryapılandırılmış uzak yönetim bağlantıları kabul etmek için bir açık bağlantı noktası numarası ile dac başlatılmalıdır:

sqlcmd –STCP:<server>,<port>

SQL ServerHata günlüğü için varsayılan 1434 olan dac, bağlantı noktası numarasını listeler. Eğer SQL Serveryapılandırılmış yalnızca yerel dac bağlantıları kabul etmek için aşağıdaki komutu kullanarak loopback bağdaştırıcısını kullanarak bağlan:

sqlcmd –S127.0.0.1,1434

Örnek

Bu örnekte, yönetici Sunucu bildirimleri URAN123vermiyor ve sorunu tanılamak istiyor. Bunu yapmak için kullanıcı etkinleştirir sqlcmdyarar ve sunucuya bağlanan komut URAN123kullanarak -Adac gösterecek.

sqlcmd -S URAN123 -U sa -P <xxx> –A

Yönetici, şimdi sorunu tanılamak için sorguları yürütmek ve muhtemelen tepkisiz oturumları sonlandırır.

ilişkili Görevler

How to: Use the Dedicated Administrator Connection with SQL Server Management Studio

İlişkili İçerik

Sqlcmd Scripting değişkenleri ile kullanma

Sqlcmd yardımcı programı

select (Transact-sql)

sp_who (Transact-sql)

sp_lock (Transact-sql)

KILL (Transact-sql)

dbcc checkalloc (Transact-sql)

DBCC CHECKDB (Transact-SQL)

dbcc opentran (Transact-sql)

dbcc INPUTBUFFER (Transact-sql)

Sunucu yapılandırma seçenekleri

Hareket dinamik yönetimi görünümler ve işlevler (Transact-sql) ilgili

İzleme Bayrakları (Transact-SQL)