Sauvegarde quotidienne base PostgreSQL sous Windows
Bonjour,
je dois réaliser une sauvegarde automatique d'une base de données postgresql sous windows tous les jours à une certaine heure.
Comment procéder?
Apparemmment, il faut faire un fichier batch, mais ou le placer ? que mettre dedans ? et comment va-t-il lancer la procédure tout seul?
je suis un peu perdu.
sauvegarde quotidienne avec compession
Ceci est un script de sauvegarde windows :
il sauvegarde toutes les base dans set "rep_sav=C:\\backup\\db"
principe création d'un fichier temporaire "backup_pg_temp.bat"
qui contient pour chaque base :
- création des répertoires sur C:\\backup\\db\\mabase1 s'il n'existe pas
- création du dump (je préfère le format sql)
- compression du dump avec gzip.exe
placer ce code dans un backup_all_pg.bat
et placer l'appel de ce fichier dans le gestionnaire de tache planifiés
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
|
@ECHO OFF
echo rem -------------------------------------------------
echo rem Sauvegarde FULL postgres
echo rem -------------------------------------------------
echo if not exist postgres md postgres > backup_pg_temp.bat
set rep_sav=C:\\backup\\db
set nom_serveur=localhost
set nom_user=postgres
rem set fic=sav_%date:~6,4%%date:~3,2%%date:~0,2%_%time:~0,2%%time:~3,2%%time:~6,2%.dump
set vheure=%time:~0,2%
if /i %vheure% lss 10 set vheure=0%time:~1,1%
set vmin=%time:~3,2%
if /i %vmin% lss 10 set vmin=0%time:~4,1%
set vsec=%time:~6,2%
if /i %vsec% lss 10 set vsec=0%time:~7,1%
set fic=_%date:~6,4%%date:~3,2%%date:~0,2%_%vheure%%vmin%%vsec%.dump
psql -U%nom_user% -h%nom_serveur% -t -c "select 'if not exist %rep_sav%\\postgres\\'||datname||' md %rep_sav%\\postgres\\'||datname from pg_database where datname not in ( 'template0', 'template1', 'postgres') " > %rep_sav%\\backup_pg_temp.bat
psql -U%nom_user% -h%nom_serveur% -t -c "select 'pg_dump -Upostgres -f %rep_sav%\\postgres\\'||datname||'\\'||datname||'_%fic% -D -F p '||datname from pg_database where datname not in ( 'template0', 'template1', 'postgres') " >> %rep_sav%\\backup_pg_temp.bat
psql -U%nom_user% -h%nom_serveur% -t -c "select 'gzip -9 -S .zip %rep_sav%\\postgres\\'||datname||'\\'||datname||'_%fic% ' from pg_database where datname not in ( 'template0', 'template1', 'postgres') " >> %rep_sav%\\backup_pg_temp.bat
%rep_sav%\\backup_pg_temp.bat
pause |
A+
reponse script de sauvegarde
j'ai essaye le script de cubepiege mais au niveau de cette ligne :
Wshell.Run "vacuumdb -z -d "&datname&" -h localhost -U postgres",1,True
il ya une erreur: fichier introuvable.
est-ce que cubepiege peut m'aider à corriger cette erreur la .Merci d'avance