Wie mache eine automatisches Backup von Postgresql unter Windows im laufenden Betrieb ?
Anlegen einer Passwortdatei
Mit der Passwortdatei wird die Abfrage des DB-Passworts unterbunden.
Im Verzeichnis
%PROFILE%\Anwendungsdaten\postgresql\
die Datei pgpass.conf anlegen
Inhalt:
#Syntax: hostname:port:database:username:password
localhost:5432:*:postgres:xxxx
Backup Skript schreiben
Die Pfade etc. müssen natürlich angepasst werden.
Call :MAIN >C:\Logs\Schedule\BackupPostgresql.log 2>&1
Goto :EOF
:MAIN
FOR /F "tokens=1,2,3,4,5 delims=/. " %%a in ('date/T') do set CDATE=%%a%%b%%c%%d
echo %cdate%
cd C:\Program Files\PostgreSQL\8.1\bin\
pg_dumpall.exe -U postgres > C:\Soft\postgresql_backup\pgdump%cdate%.sql
autodel.exe C:\Soft\postgresql_backup\ /A 15
Goto :EOF
Bitte nicht meckern warum ich das dämliche cd mache. Der direktAufruf der Dateien hat nicht funktioniert. Daran sind wahrscheinlich die Leerzeichen im Pfadnamen schuld.
Backup Skript automatisch starten
Über Scheduled Tasks entsprechend konfigurieren
Rotationen der Backup-Dateien
Die Bereingung der alten Dateien erfolgt über das Kommandozeilentool autodel.exe innerhalb des Backup-Skripts
Voila!