Schedulare i backup su Windows
OK, purtroppo capita che per lavoro si debba anche maneggiare Windows. Il disagio è minore se si utilizza software Open Source possibilmente di “buona fattura” come PostgreSQL.
La domanda è la solita: “come faccio i backup?”, nel caso specifico si parla di backup da schedulare su katramzozz server duemiglia3 o affini ambienti ad alto tasso batterico.
Accendete un cero a Sant’Espedito, come segno di devozione per ringraziarlo di avervi fatto trovare questa pagina web (e accendetene un altro come penitenza per non essere ancora passati a Linux…) e procedete come segue.
Il backup su PostgreSQL viene effettuato come su Linux, grazie al comando pg_dump. Do per scontato che se vi pagano perché vi credono “sistemisti”, sappiate leggere due parole di inglese tecnico, quindi ogni ulteriore approfondimento lo trovate sul reference on line (avviabile anche da Windows, aprendo una finestra comandi e scrivendo pg_dump -?).
Un esempio di comando che tipicamente effettua il backup è questo:
pg_dump -h localhost -U nomeutente -Fc -x -f backup.del.giorno.x
dove nomeutente è il nome dell’utente che ha i privilegi di accesso al database da sottoporre a backup e backup.del.giorno.x è il nome del file che verrà prodotto.
Questo comando suppone che voi siate dinnanzi al computer perché vi chiederà di immettere la password dell’utente specificato nell’argomento -U.
Ma quando vorrete creare una procedura automatizzata per far sembrare Windows “figo” come Linux, come si fa?
Per prima cosa dobbiamo gestire l’immissione della password. Ci sono due modi. Il primo richiede che la password relativa all’utente sia memorizzata nel file pgpass.conf che si trova, di solito in:
C:\Documents and Settings\NomeUtente\Dati applicazioni\postgresql
Se il file non esistesse, createlo manualmente, seguendo lo schema appena descritto.
Dentro al file scrivete
nomecomputer:porta:nomedatabase:nomeutente:password
L’altro metodo è quello di inserire nello script di batch, la variabile set PGPASSWORD=panelle dove “panelle” è l’ipotetica password che vogliamo usare.
Adesso quello che rimane da fare è creare lo script batch, che esegua i backup contrassegnandoli con la data.
Ecco un esempio:
for /f "tokens=1,2,3,4 delims=/ " %%a in ('DATE /T') do set Date=%%c%%b%%a
pg_dump -h localhost -U nome_utente -Fc -x -c -f dovetengoibackup\%Date%.backup nome_database
- nomeutente, sappiamo cosa significa
- dovetengoibackup è il percorso della directory dove collocherete i backup (del tipo c:\copiedisicurezza)
- nome_database è il nome del database da copiare
Mi fermo qui, ho già sforato il tempo massimo che in un anno posso dedicare alla risoluzione (gratuita) di problemi per Windows… ma penso che, ECDL o non ECDL, saprete come “gestire” la schedulazione di un batch su Windows… quindi non avrete altro da fare che sottoporre a scheduler questo script e tanti saluti.
No trackbacks yet.