PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 16/06/2014 08:59:58

batch sauvegarde BDs journalier et horodaté

Bonjour à tous,

Je cherches à créer un batch de sauvegarde journalier et horodaté pour 7 base de données différentes sous un postgre 8.4 je suis totalement novice en ligne de commande j'ai vu plusieurs types de sauvegarde et plusieurs formats de fichiers en sortie en réalité je ne sais pas ce qu'il faut choisir entre les options j'aimerais simplement avoir une sauvegarde la plus complète et la plus simple à restaurer. Je ne sais pas trop comment organiser mon batch..

voici ce que je pensais mettre en place mais je ne suis pas sur de ce que j'ai écrit :

echo %date%
set x=%date:/=-%
echo %x%
pg_dump.exe --host 192.168.x.xxx --port 5432 --username postgre --format XXX  --file "C:\sauvegarde\%x%_backup_ma_base.XXX" ma_base

Quels sont les types et formats de sauvegarde appropriés? et comment mettre en place un batch fiable?

Merci d'avance

Hors ligne

#2 16/06/2014 09:09:41

arthurr
Membre

Re : batch sauvegarde BDs journalier et horodaté

Bonjour,

Généralement, j'utilise le format "Custom" : -Fc
Il permet d'utiliser pg_restore et toutes les options qui vont avec.

Hors ligne

#3 16/06/2014 13:37:27

Re : batch sauvegarde BDs journalier et horodaté

Merci pour votre réponse, quand j'utilise le .bat créer une fenêtre noir s'ouvre et se ferme aussitôt et aucun fichier n'est sauvegarder dans le dossier,

Est ce que ma ligne de commande est bonne ou manquerait t'il quelque chose?

Hors ligne

#4 16/06/2014 15:19:30

arthurr
Membre

Re : batch sauvegarde BDs journalier et horodaté

Je ne vais pas pouvoir vous aider plus : je ne travaille que sous Linux

Hors ligne

#5 16/06/2014 21:22:41

rjuju
Administrateur

Re : batch sauvegarde BDs journalier et horodaté

Lancez le en ligne de commande au lieu de double cliquer dessus, ou ajoutez un "pause" à la fin du script afin de voir les messages d'erreurs ou tout autre problème.

En ligne

#6 18/06/2014 08:54:19

Re : batch sauvegarde BDs journalier et horodaté

Bonjour,

Merci pour les réponses j'ai modifié quelque peu ma ligne de commande ce qui donne ceci:

echo %date%
set x=%date:/=-%
echo %x%
"C:\Program Files (x86)\PostgreSQL\8.4\bin\pg_dump.exe" -h 192.168.1.XXX -p 5432 -U postgres -fc -t ma_base > C:\DONNEES\testsauvegarde\%x%ma_base
"pause"

deux choses en ressorte, premièrement il me demande le mot de passe pour la connexion aux base de données et j'aimerais faire en sorte qu'il tourne sans me le demander car je ne serais pas forcement devant lors de l'envoi du script quelles solutions puis je mettre en place?

Deuxièmement il me ressort comme message d'erreur : annulation à cause de la différence des versions, j'ai un 9.1.11 sur le serveur et un 8.4 sur mon ordinateur, faut t'il que j'ai la même sur les deux ou si j'ai une version plus récente sur mon ordinateur cela marchera t'il correctement?

Dernière modification par elliottthevenod (18/06/2014 08:54:53)

Hors ligne

#7 18/06/2014 10:48:11

gleu
Administrateur

Re : batch sauvegarde BDs journalier et horodaté

deux choses en ressorte, premièrement il me demande le mot de passe pour la connexion aux base de données et j'aimerais faire en sorte qu'il tourne sans me le demander car je ne serais pas forcement devant lors de l'envoi du script quelles solutions puis je mettre en place?

Soit utiliser un fichier .pgpass soit utiliser la variable d'environnement PGPASSWORD. Plutôt le premier.

Deuxièmement il me ressort comme message d'erreur : annulation à cause de la différence des versions, j'ai un 9.1.11 sur le serveur et un 8.4 sur mon ordinateur, faut t'il que j'ai la même sur les deux ou si j'ai une version plus récente sur mon ordinateur cela marchera t'il correctement?

Même version.


Guillaume.

Hors ligne

#8 18/06/2014 16:31:07

Re : batch sauvegarde BDs journalier et horodaté

J'ai installé la même version, je n'ai pas encore fais de .pgpass puisque je test ma ligne pour le moment, j'ai donc cette ligne :

echo %date%
set x=%date:/=-%
echo %x%
"C:\Program Files (x86)\PostgreSQL\bin\pg_dump.exe" -h 192.168.1.XXX -p 5432 -U postgres -fc -t ma_base > C:\DONNEES\testsauvegarde\%x%ma_base

il me retourne une erreur en me disant qu'aucune table correspondant n'a été trouvé. auriez vous une solution ou sauriez vous d'ou viens le problème?

Merci

Hors ligne

#9 18/06/2014 18:12:58

gleu
Administrateur

Re : batch sauvegarde BDs journalier et horodaté

Il manque le nom de la table après l'option -t. En fait, dans cette colonne il prend ma_base comme nom de table (vu que c'est tout de suite après l'option -t). Comme il n'y a pas de nom de base et que l'utilisateur est postgres, il se connecte sur la base postgres. Et je parierais que la base postgres ne contient pas de table appelée ma_base.


Guillaume.

Hors ligne

#10 20/06/2014 08:39:54

Re : batch sauvegarde BDs journalier et horodaté

Merci beaucoup pour vos réponses j'ai finalisé ma ligne et apparemment elle marche, elle donne ça :

echo %date%
set x=%date:/=-%
echo %x%
"C:\Program Files (x86)\PostgreSQL\bin\pg_dump.exe" -h 192.168.1.XXX -p 5432 -U postgres -Ft ma_base > C:\DONNEES\testsauvegarde\%x%ma_base

Il ne me reste plus qu'a créer un fichier .pgpass et a faire en sorte quelle se lance quotidiennement.

J'avais une autre question existe t'il un moyen pour que les sauvegardes datant de plus de 3 jours par exemple sois supprimé automatiquement?

Merci

Hors ligne

#11 20/06/2014 09:44:59

gleu
Administrateur

Re : batch sauvegarde BDs journalier et horodaté

C'est au script de le faire. Je ne pourrais pas vous aider sur ce point, les scripts Windows et moi, on n'est pas copains.


Guillaume.

Hors ligne

#12 20/06/2014 10:40:45

Re : batch sauvegarde BDs journalier et horodaté

Merci quand même je vais me renseigner sur ce point

Bonne journée

Hors ligne

#13 20/06/2014 10:41:52

damalaan
Membre

Re : batch sauvegarde BDs journalier et horodaté

elliottthevenod a écrit :

J'avais une autre question existe t'il un moyen pour que les sauvegardes datant de plus de 3 jours par exemple sois supprimé automatiquement?

Merci

La gestion des dates avec un fichier .bat c'est une grosse m...... (j'ai un script de sauvegarde qui teste les dates, les heures, c'est un truc de taré)

Vous pourriez faire tout ça en PowerShell, c'est plus simple

(get-date).adddays(-3)

Hors ligne

#14 20/06/2014 10:43:18

Re : batch sauvegarde BDs journalier et horodaté

Très bien merci je vais donc me renseigner sur Powershell smile

Bonne journée

Hors ligne

Pied de page des forums