931giorni trascorsi da
SQLBits 9

powered by

Progetti‎ > ‎

Backup Express

Premessa

Backup Express nasce dalle seguenti mie osservazioni emerse sul campo:
  • la Express Edition di SQL Server 2005/2008 non presenta il servizio SQL Agent che consente l'automatizzazione delle attività amministrative, prima fra tutte il backup;
  • la limitazione strutturale (forse) più importante di questa edition è rappresentato dal limite di 4 GB per ogni database (comprensivo di file di log), che di fatto lo relega ad essere un server di database per applicazione desktop o comunque con fattori di crescita molto contenuti;
  • il limite di 4 GB, insieme ai domini applicativi di bassa complessità a cui è orientato, rende plausibile una strategia di backup della Express Edition molto semplificata, che preveda appunto il solo backup di tipo completo con cadenza giornaliera.

Obiettivi

  • Implementare una soluzione basata su T-SQL per la realizzazione, pianificazione, notifica di un backup completo giornaliero di database MS-SQL Express 2005/2008, ovvero anche in assenza del Sql Server Agent.
  • Implementare una cancellazione dei backup più vecchi di N giorni.

Per iniziare

Per comprendere i concetti fondamentali sull'oggetto di questo progetto, ti consiglio la lettura dei seguenti articoli:


Contenuto

La soluzione è composta di 3 script:
  • 00.bac_exp__setup
Genera il database di supporto denominato "support_dba" e tutti i suoi oggetti (tabelle, assembly, stored procedure). Configura il server SQL per l'invio l'uso del CLR e della xp_cmdshell.

  • 01.bac_exp__configure
Popola le tabelle di "support_dba" (configuration.smtp, configuration.operators) che rendono possibile l'invio dell'email di notifica (personalizzabile nel subject e nel body) del backup a un insieme di indirizzi email associati a un codice operatore.

  • 02.bac_exp__how_to_use
Configura il backup eseguendo la stored procedure "stp_create_startup_backup_proc" previa valorizzazione dei suoi parametri. La sua esecuzione produce in output lo script che occorre a sua volta eseguire per creare la procedure di startup che si occuperà del backup pianificato. 
        

Note

  • Necessita dell'abilitazione del CLR e della xp_cmdshell (se ne occupa lo script "backup_express_setup")
  • Fa uso della funzionalità di startup la quale consente di impostare l'esecuzione automatica di una stored procedure presente nel master database all'avvio del servizio SQL
  • Fa uso del comando WAITFOR TIME per attendere l'arrivo dell'ora desiderata per l'esecuzione del backup
  • Integra il .NET assembley amDBObj (versione {1.2008.2.0 # 16 gennaio 2009}) sviluppato da Andrea Montanari (a cui va un sentito grazie!) che implementa una stored procedure per inviare e-mail in assenza del Database Mail
  • Per l'attivazione del Backup Express è necessario riavviare il servizio SQL Server al termine dell'installazione.


Video tutorial


ċ
00.bac_exp__setup.sql
Scarica
T-SQL Script  31 k v. 3 11/feb/2010 03:37 Francesco Quaratino
ċ
01.bac_exp__configure.sql
Scarica
T-SQL Script  2 k v. 3 11/feb/2010 03:37 Francesco Quaratino
ċ
02.bac_exp__how_to_use.sql
Scarica
T-SQL Script  2 k v. 3 11/feb/2010 03:37 Francesco Quaratino
č
backup_express.mp4
Scarica
MP4  9939 k v. 1 17/feb/2010 14:27 Francesco Quaratino
Pagine secondarie (1): support_dba
Comments