Ultimo tentativo di accesso a SQL e la "Dedicated Admin Connection" (DAC)
Ciao a tutti,
Oggi vi volevo parlare di una problematica che sicuramente sarà capitata anche a voi se lavorate con SQL Server.
Siete il DBA della Megaditta!
Avete appena preso il primo caffè quando vi telefonano (è lunedì mattina) per dirvi che SQL Server non risponde più!
A parte pensare che la settimana poteva iniziare meglio di così vi collegate sul server e lanciate l'SMSS.
Provate subito di connettervi e verificate che gli utenti hanno ragione non ci si connette
E adesso, cosa fate?
La DAC o Dedicated Administrator Connection.
Bhe, Iniziamo a dire che una situazione del genere fa venire in mente un pò a tutti ad una mancanza o esaurimento delle risorse.
Avete ragione!
Ma quali risorse potrebbe essersi esaurite?
Faccio veloce un passo indietro per raccontarvi due righe di teoria ed alcuni brevi concetti che ci serviranno più avanti.
A partire dalla versione 2005 SQL Server ha al suo interno un proprio sistema operativo a cui ci si riferisce con il nome di SQLOS.
Il suo compito è quello di gestire e schedulare una serie di working thread. I working thread sono quelli che eseguiranno le vostre Query.
Questi working thread non sono infiniti ed il loro numero dipende sostanzialmente dal numero di CPU di cui è dotato il server.
Ad esempio nel caso in cui il vostro server è dotato di meno di 4 CPU avrete a disposizione 512 working thread.
I working thread aumentano poi con il numero dei processori. Con 32 processori avrete disponibili 960 working thread.
Se ad un certo momento vengono esauriti tutti i thread ecco che SQL Server non riponderà più ai comandi!
Dato che siete felici per aver capito il motivo per cui a volte SQL Server non ci risponde, lo sarete ancora di più nel sapere come entrare nella console ed imparite così qualche comando per capire cosa accedere e quindi risolvere.
Già dalla versione SQL Server 2005, Microsoft aveva previsto come risolvere questa evenienza prevedendo un accesso "a parte" denominato Dedicated Admin Connection.
Già proprio un accesso dedicato, il DAC ha infatti un suo scheduler ed un proprio memory node.
Accedere alla DAC
E quindi Come facciamo ad accedere tramite il DAC?
Semplice!
Dall' SMSS fate nuova Query e quando appare la finestra per fare il login davanti al nome del server mettete "admin:"
Tutto qui!
L'unico aspetto da ricordare è che per default il DAC è abilitato solo per il collegamento in locale.
Per accedere da remoto occorre preventivamente ablitarlo tramite i comandi.
EXEC sp_configure 'remote admin connections', 1; GO RECONFIGURE GO
Ora che siamo entrati nella console possiamo vedere quali sono i processi bloccati e quelli che bloccano.
Killando il processo che blocca andremo a sbloccare tutta l'istanza di SQL Server.
Per oggi è tutto.
A proposito... Buon lunedì dalla Megaditta!
Luca Biondi @ SQLServerPerformance blog!
Next post: Confronto tra "Temp Tables" (#) e "Table Variables" (@)
Previous post: SET IDENTITY_INSERT, a cosa serve?
Comments
Post a Comment