Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
Je ne vais pas pouvoir vous aider plus : je ne travaille que sous Linux
Hors ligne
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.
Julien.
https://rjuju.github.io/
Hors ligne
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
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
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
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
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
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
Merci quand même je vais me renseigner sur ce point
Bonne journée
Hors ligne
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
Très bien merci je vais donc me renseigner sur Powershell
Bonne journée
Hors ligne
Pages : 1