Manutenzione di SQL Server: come fare

19 gennaio 2012

La manutenzione periodica dei database è sicuramente tra le attività fondamentali richieste a un DataBase Administrator (DBA) che si rispetti. Innanzitutto, cerchiamo di definire il concetto di manutenzione di un database. Da un punto di vista strettamente fisico, il database è sinonimo di dati registrati su disco. È proprio questa componente meccanica (il disco appunto) che lo lega fortemente al concetto di manutenzione. Così, al pari di un automobile, di cui provvediamo a fare il tagliando ogni tot km per evitare una sosta forzata sulla corsia di emergenza in autostrada proprio il giorno di Ferragosto…, o della caldaia del gas, che sottoponiamo al controllo annuale prima che arrivi l’inverno e ci sorprenda senza riscaldamento, un database necessita di controlli e interventi periodici in grado di prevenire situazioni pericolose – oltre che imbarazzanti per l’IT Departement – che siano in grado di mantenerlo “giovane e pimpante” come il giorno della sua nascita in produzione.

Anche un database si “usura” col tempo: infatti (per citare alcuni tra i principali esempi) i suoi indici si frammentano se non ci si preoccupa di riorganizzali o ricostruirli, le sue statistiche diventano obsolete a meno che provvediamo ad aggiornarle, le sue pagine di dati possono corrompersi e, se non ne controlliamo periodicamente lo stato di consistenza, c’è il rischio di perdere definitivamente i dati in esso contenuti.

Un piano di manutenzione è fondamentale per una vita longeva di un database. Avete mai notato che il giorno in cui un database vede la luce in produzione sembra essere tutto perfetto, e man mano che il tempo passa cominciano a insorgere problemi di performance? Molte volte tali problemi sono legati a errori di progettazione del database (per esempio la scarsa normalizzazione delle tabelle), nel qual caso non c’è manutenzione che tenga, ma il più delle volte accade che il volume di dati crescente mette in crisi le attività di manutenzione periodiche esistenti (sempre che ce ne siano) e rendono necessaria una loro revisione. Da qui la necessità di manutenere il piano di manutenzione stesso, nel senso di rivederlo all’occorrenza per aggiustare il tiro durante tutto il ciclo di vita del database.

Questa mini-guida esplora l’argomento della manutenzione dei database analizzando i diversi task coinvolti in una manutenzione standard di un database MS-SQL Server 2005/2008. Gli esempi sono stati realizzati con la Enterprise Edition della versione SQL Server 2008. Ciascun task viene trattato principalmente dal punto di vista pratico, senza addentrarsi in complessi aspetti teorici per i quali si rimanderà a specifici articoli già pubblicati su HTML.it, mostrandone passo-passo l’implementazione con due metodi distinti:

  • Quello standard messo a disposizione da Microsoft, ovvero il designer interno al Management Studio;
  • Una soluzione free, basata sul linguaggio T-SQL, denominata SQL Server Maintenance Solution. Essa è stata realizzata nel 2008 da Ola Hallengren, un ormai noto DBA svedese che tuttora ne cura gli aggiornamenti.

Di fatto, si vedrà come Ola Hallengren sia giunto a un ottimo risultato, superando di gran lunga la soluzione standard, la quale si presta a scenari meno complessi perché, pur essendo dotata di una interfaccia grafica molto user-frendly, non ha lo stesso grado di flessibilità della soluzione T-SQL di Ola Hallengren.

Adesso una puntualizzazione necessaria: in un classico piano di manutenzione rientrano anche i backup dei database. Anche questo classico task sarà affrontato dal un punto di vista strettamente pratico, rimandando per quello teorico all'articolo Backup e restore di un database SQL Server 2005/2008.

Se vuoi aggiornamenti su Manutenzione di SQL Server: come fare inserisci la tua e-mail nel box qui sotto:
 
X
Se vuoi aggiornamenti su Manutenzione di SQL Server: come fare

inserisci la tua e-mail nel box qui sotto:

Ho letto e acconsento l'informativa sulla privacy

Acconsento al trattamento di cui al punto 3 dell'informativa sulla privacy