Quali sono gli aspetti critici che dovrei controllare quotidianamente nel mio lavoro con Microsoft SQL Server?
Domanda quasi banale che ogni sicuramente si pone appena arriva sul luogo di lavoro.
La risposta non è altrettanto scontata perché varia ovviamente in base alla criticità e alla complessità dei nostri sistemi nonché dalla presenza di strumenti più o meno automatizzati che ci aiutano ad avere le risposte che ci servono.
Checklist giornaliera
SPOILER: Molti degli elementi di questa lista sono completamente automatizzabili e possono scatenare degli alert nel caso qualcosa non vada nel verso giusto. Ad esempio, una cosa che spesso manca all'interno delle dei nuovi clienti che visitiamo, è la configurazione del sottosistema di invio della posta elettronica (Database Mail). Una volta impostato, in pochi secondi è possibile fare in modo che per ogni job fallito ci arrivi una email di notifica.
Iniziamo:
Backups
- Tutti i backup sono stati eseguiti correttamente?
- Lo spazio disco è sufficiente per le prossime esecuzioni?
- La durata dei backup ha subito variazioni sensibili?
Job eseguiti nelle ultime 24 ore o dall'ultimo controllo (SQL Server Agent e Windows Scheduler)
- Tutti i job schedulati sono stati eseguiti correttamente?
- La durata dei job ha subito variazioni sensibili?
SQL Server Log
- Sono stati registrati eventi anomali?
Windows Event Log
- Sono stati registrati eventi anomali che possono impattare sull'operatività di SQL Server?
Security logs
- Sono stati rilevati tentativi di accesso falliti su qualche database?
- Sono state modificate le impostazioni di sicurezza degli utenti?
Disponibilità delle risorse
- Sono stati rilevati picchi importanti ed anomali nell'utilizzo della CPU?
- Il trend di utilizzo dello spazio disco è regolare e prevedibile?
Performance Logs
- Si notano segnali di pressione nell'utilizzo della memoria?
- I parametri che utilizzo per queste misurazioni hanno subito qualche variazione significativa o presentano pattern anomali?
Pianificare le azioni correttive
- A fronte di ogni anomalia riscontrata, come posso fare in modo che non accada nuovamente?
Pianificare i miglioramenti
- Ci sono piani da parte dei nostri interlocutori (IT Manager, team di sviluppo, utenti di business) che prevedono modifiche sensibili dei carichi di lavoro nei prossimi giorni-mesi?
- Ci sono delle proposte che possiamo fare per migliorare performance, disponibilità ed affidabilità dei sistemi?
Ogni checklist è molto personale ed ognuno "ci mette del suo" (per fortuna di tutti!). Vedremo successivamente quali altri aspetti serve considerare su orizzonti di tempo, settimanali o mensili.
Un consiglio importante: cercate di automatizzare il più possibile questi task in modo da sistematizzare le operazioni effettuate e non scordare di eseguirle con continuità. E controllate, soprattutto all'inizio, che l'automazione funzioni... non è così scontato.
Ci sono decine di strumenti gratuiti o a pagamento e migliaia di pagine web, blog e "how to" che ci aiutano a fare dei controlli efficaci: usateli.
Noi di Datamaze abbiamo realizzato SQL Catcher per SQL Server, un servizio gratuito completamente automatizzato, che controlla non solo lo stato di salute, ma anche la configurazione ottimale del tuo server e dei tuoi database. Criticità, osservazioni, consigli per un miglioramento continuo, tutto in una e-mail. Provalo subito.
di Cristiano Gasparotto, pubblicato il 30 dicembre 2019