Per poter schedulare un backup su PostgreSQL 9.x è necessario predisporre un file batch da schedulare tramite l’Utilità di pianificazione di Windows.
Il contenuto del batch dovrà contenere il comando di PostgreSQL incaricare ad eseguire il dump con gli opportuni parametri. La sintassi è la seguente:
pg_dump.exe -O –dbname=postgresql://utente:password@host:porta/nome_db -f nome_file.sql
Sostituire i paramentri in grassetto/italico con gli opportuni valori.
Es.:
pg_dump.exe -O --dbname=postgresql://sa:sa@127.0.0.1:5432/daodb -f backup.sql
Come alternativa è possibile creare un file batch come il seguente, che permette di mantenere un backup mensile:
@echo off
for /f "tokens=1-4 delims=/ " %%i in ("%date%") do (
set day=%%i
set month=%%j
set year=%%k
)
set datestr=%day%
echo datestr is %datestr%
set BACKUP_FILE=atlantis_%datestr%.backup
echo backup file name is %BACKUP_FILE%
SET PGPASSWORD=<PASSWORD>
echo on
"c:\Program Files\PostgreSQL\9.3\bin\pg_dump.exe" -i -h <HOST> -p 5432 -O -U <UTENTE> -F c -b -v -f %BACKUP_FILE% <NOME_DB>
Schedulando un backup giornaliero è possibile ottenere la storia dei backup di un mese intero. Il batch in questione crea un backup denominato atlantis_<giorno>.backup