Conexiune de diagnostic pentru administratorii de baze de date

SQL Server oferă o conexiune specială de diagnosticare pentru administratori atunci când nu este posibilă o conexiune standard la server. Această conexiune de diagnosticare permite administratorului să acceseze SQL Server pentru a efectua interogări de diagnosticare și a depana probleme chiar dacă SQL Server nu răspunde la solicitările standard de conectare.

Această conexiune administrativă dedicată (DAC) suportă criptarea și alte caracteristici de securitate SQL Server. Conexiunea administrativă selectată vă permite să modificați numai contextul utilizatorului către alt utilizator cu drepturi de administrator.

SQL Server se străduiește să conecteze cu succes conexiunea administrativă dedicată, dar în situații de urgență acest lucru nu este posibil.

Implicit, conexiunea este permisă numai de la clientul care rulează pe server. Conexiunile de rețea nu sunt permise decât după configurarea lor utilizând procedura stocată sp_configure cu conexiunile la distanță de administrare a opțiunilor.

Doar membrii din rolul SQL Server sysadmin pot fi conectați utilizând conexiunea administrativă dedicată.

Deoarece există o conexiune administrativă dedicată numai pentru diagnosticarea problemelor pe server în circumstanțe rare, conexiunea are anumite limitări.

Pentru a vă asigura că există resurse disponibile pentru conexiune, este permisă o singură conexiune administrativă dedicată pentru fiecare instanță a serverului SQL. Dacă conexiunea administrativă selectată este deja activă, orice nouă solicitare de conectare prin DAC este respinsă cu eroare 17810.

Pentru a conserva resursele, SQL Server Express ascultă pe portul conexiunii administrative dedicate numai atunci când începe cu pavilionul de urmărire 7806.

Prima conexiune administrator dedicat este conectat la baza de date implicită asociată cu datele de conectare. După o conexiune reușită, vă puteți conecta la baza de date master. În cazul în care baza de date implicită este în modul offline sau nu este disponibilă pentru alte motive, conexiunea returnează o eroare 4060. În acest caz, conexiunea va fi de succes în cazul în care, în loc de date implicit pentru a se conecta la baza de date de master cu următoarea comandă:

Se recomandă să vă conectați la baza de date principală printr-o conexiune administrativă dedicată, deoarece baza de date principală va fi în orice caz disponibilă dacă se execută o instanță a componentei Engine Database Engine.

SQL Server interzice executarea cererilor sau comenzilor paralele printr-o conexiune administrativă dedicată. De exemplu, eroarea 3637 apare atunci când executați oricare dintre următoarele instrucțiuni printr-o conexiune administrativă dedicată:

Pentru a asigura conectivitatea și depanarea printr-o conexiune administrativă dedicată, SQL Server își rezervă resurse limitate pentru procesarea comenzilor care sunt pornite prin ea. Aceste resurse sunt, de obicei, suficiente numai pentru funcțiile simple de diagnosticare și depanare, care sunt enumerate mai jos.

Cerere astfel de opinii de management dinamic (DMV) pentru diagnosticarea de bază ca sys.dm_tran_locks pentru a bloca de stat, sys.dm_os_memory_cache_counters pentru verificarea cache, sys.dm_exec_requests și de serviciu se sys.dm_exec_sessions pentru sesiuni active și cereri. Evitați utilizarea de management dinamic vizionările DMV, consumă o mulțime de resurse (de exemplu, prezentarea sys.dm_tran_version_store scanează complet magazin versiune, ceea ce ar putea duce la o creștere bruscă a volumului de intrare-ieșire), sau utilizând compuși complecși. Pentru informații cu privire la impactul asupra performanței, a se vedea. În documentația pentru vederile specifice de management dinamic.

Solicitați vizualizări în catalog.

Comenzile de bază DBCC, cum ar fi DBCC FREEPROCCACHE, DBCC FREESYSTEMCACHE, DBCC DROPCLEANBUFFERS. și, de asemenea, DBCC SQLPERF. Nu efectua astfel de comenzi intensive, cum ar fi DBCC CHECKDB, DBCC DBREINDEX sau DBCC SHRINKDATABASE.

Comanda Transact-SQL KILL . În funcție de starea SQL Server, comanda KILL nu reușește întotdeauna. În acest caz, singura opțiune este să reporniți SQL Server. Să luăm în considerare câteva reguli generale.

Utilizarea interogării SELECT * FROM sys.dm_exec_sessions WHERE session_id = asigurați-vă că SPID a fost cu adevărat dezactivat. Dacă rândurile nu se întorc, sesiunea a fost oprită.

Dacă sesiunea continuă, verificați folosind SELECT * FROM sys.dm_os_tasks interogare WHERE session_id = Prezența sarcinilor atribuite pentru această sesiune. Dacă sarcina este prezentă, atunci, cel mai probabil, sesiunea se închide în acest moment. Rețineți că acest lucru poate dura ceva timp și nu reușește.

În cazul în care depunerea sys.dm_os_tasks probleme asociate cu sesiunea, dar sesiunea rămâne în sys.dm_exec_sessions după comanda KILL, aceasta înseamnă că nu există nici o lucrare disponibile procesor. Pentru a elibera fluxul de lucru, selectați una dintre sarcinile curente (sarcini în sys.dm_os_tasks sessions_id valoarea <> NULL) și opriți sesiunea asociată cu aceasta. Rețineți că oprirea unei sesiuni poate să nu fie suficientă: poate fi necesar să opriți mai multe sesiuni.

Pentru conexiuni administrative dedicate, SQL Server ascultă pe portul TCP 1434, dacă este disponibil, sau portul TCP atribuit dinamic când este pornită componenta Database Engine. Jurnalul de erori conține numărul de port unde se așteaptă conexiunea administrativă selectată. În mod implicit, o conexiune administrativă dedicată este așteptată numai în portul local. Pentru un exemplu de cod care permite conexiuni administrative la distanță, consultați secțiunea "Conexiuni de administrare la distanță" a parametrului de configurare a serverului.

După configurarea conexiunii administrative, ascultătorul pentru conexiunile administrative selectate este activat fără a trebui să reporniți SQL Server, iar clientul se poate conecta de la distanță la DAC. Ascultătorul conexiunii DAC poate permite conexiuni la distanță, chiar dacă SQL Server nu răspunde. Pentru aceasta, vă puteți conecta mai întâi la SQL Server local printr-o conexiune administrativă dedicată și apoi executați procedura stocată sp_configure pentru a accepta conexiuni la distanță.

Portul de conexiuni administrative dedicate este atribuit dinamic SQL Server în timpul pornirii. Când se conectează la o instanță în mod prestabilit, DAC se străduiește să nu utilizeze cererea de protocol de permisiune SQL Server (SSRP) la serviciul de browser SQL Server. Mai întâi, se face o încercare de a se conecta prin portul TCP 1434. În caz de eroare, SSRP este chemat să primească portul. Dacă browserul SQL Server nu așteaptă cereri SSRP, cererea de conectare returnează o eroare. Consultați jurnalul de erori pentru a găsi numărul de port unde se așteaptă conexiunea administrativă selectată. Dacă SQL Server este configurat să accepte conexiuni administrative la distanță, conexiunea administrativă dedicată trebuie inițiată cu un număr de port explicit:

Jurnalul de erori SQL Server afișează numărul de port pentru conexiunea administrativă dedicată; în mod implicit, este 1434. Dacă SQL Server este configurat să accepte numai conexiuni administrative locale dedicate, conectați-vă prin adaptorul loopback folosind următoarea comandă:

Articole similare