feb
8
2007

Download backup SQL da remoto via ftp

Mi è capitato in passato di avere dei server di produzione in serverfarm remota, su cui girava sql server con alcuni db. La necessità del cliente era quella di avere in locale i backup aggiornati dei db remoti a prescindere dai backup su nastro effettuati nella serverfarm. Il server era raggiungibile solo tramite protocollo ftp/http.
Dopo aver schedulato un "maintenance plan" di sql che effettuasse il backup, ho preparato uno script che, schedulato adeguatamente, zippasse il backup (per una questione di spazio ovviamente) e lo spostasse in una directory predefinita dell'ftp.
Lato cliente, un altro script schedulato (ad un orario che permettesse al server remoto di fare il backup e zipparlo ovviamente) si occupava di aprire una connessione ftp verso il server remoto e scaricare il backup zippato, avendo cura di cancellare eventuali vecchi backup scaricati prima di n giorni in modo da non riempire il disco nel giro di un mese, e di eliminare lo zip dal server, visto che il download è andato a buon fine.

Lato filesystem normalmente organizzo i db in una cartella DATABASES che contiene al suo interno una directory per ogni db (con molta fantasia nominata proprio con l'identificativo del db). Ogni directory contiene una struttura di questo tipo:
- _maintenance (contiene lo script per zippare il db)
- BACKUP (contiene il backup eseguito da sql server)
- DATA (contiene il file .MDF e .LDF)
- LOG (contiene i file di log del backup di sql)

Lato ftp server invece mantengo una directory per ogni db (può servire anche per server con db di diversi clienti)

Lato client infine, in una directory DATABASES mantengo una struttura a due rami:
- _maintenance (contiene lo script per l'ftp)
- BACKUP (contiene gli zip scaricati)

Come al solito qui (FTP_sqlbackup.zip (2,96 kb)) c'è lo zip, se qualcuno fosse interessato. (Per eseguire lo zip del backup utilizzo pkzipc, ma lo script si può facilmente adattare ad altri prodotti).

Per immagini il processo a grandi linee è il seguente:
LATO REMOTO:
1) Configuro il backup di sql server aprendo la sezione "management" tramite la mmc
 

2) Mi creo un nuovo "maintenance plan" Avendo cura di compilare corretatmente la schedulazione del backup

3) E il posizionamento all'interno del filesystem (.../DATABASES/nomedb/BACKUP se si usa la struttura di cui ho parlato sopra)

4) In pannello di controllo, "scheduled tasks" va aggiunta una operazione pianificata che esegua lo script che zippa il backup (ad un orario che permetta al backup di finire tutte le operazioni)
 


LATO LOCALE:
1) Viene creata la directory per scaricare l'ftp e viene configurato lo script; poi in pannello di controllo, "scheduled tasks" va aggiunta una operazione pianificata che esegua lo script, cancellando lo zip sul server e gli eventuali vecchi backup in locale.
 

Add comment

biuquote
  • Comment
  • Preview
Loading

Recent Tweets

Note: For Customization and Configuration, CheckOut Recent Tweets Documentation