Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL > Administration
Administration Forum d'entraide sur l'administration de PostgreSQL : utilisateurs, privilèges, etc.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/01/2011, 09h55   #1
Candidat au titre de Membre du Club
 
ben gr
Inscription : octobre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : ben gr

Informations forums :
Inscription : octobre 2010
Messages : 49
Points : 10
Points : 10
Par défaut Comment mettre en oeuvre la commande pg_dump

Bonjour,

je souhaiterais planifier un pg_dump (je suis sous windows). Pour cela j'utiliserais le planificateur de tâche. L'objectif est de mettre en œuvre pg_dump dans un batch (chose que je parviens à faire avec un requête sql standard).

Le fait est que je ne parviens pas à exécuter pg_dump dans le shell. Pouvez-vous me donner un exemple de mise en oeuvre de commande pg_dump.

J'ai essayé pg_dump ma_base > base.sql lu dans la doc mais rien ne se passe.

Par avance merci,
renardchan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/01/2011, 10h30   #2
Membre Expert
 
Inscription : mars 2005
Messages : 1 565
Détails du profil
Informations personnelles :
Âge : 29
Localisation : France, Haute Garonne (Midi Pyrénées)

Informations forums :
Inscription : mars 2005
Messages : 1 565
Points : 2 178
Points : 2 178
Bonjour,

Avez-vous regardé la documentation officielle de Postgre ? pg_dump y est documenté.
vmolines est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 13h52   #3
ced
Rédacteur/Modérateur

 
Avatar de ced
 
Homme Cédric Duprez
Inscription : avril 2002
Messages : 3 823
Détails du profil
Informations personnelles :
Nom : Homme Cédric Duprez
Âge : 36
Localisation : France, Loiret (Centre)

Informations professionnelles :
Secteur : Agroalimentaire - Agriculture

Informations forums :
Inscription : avril 2002
Messages : 3 823
Points : 6 441
Points : 6 441
Bonjour,

Le lien vers la documentation de pg_dump : http://docs.postgresql.fr/9.0/app-pgdump.html

Il faut souvent spécifier l'adresse du serveur (option -h suivie de l'adresse IP du serveur), le port d'écoute (option -p suivie du numéro de port), le nom d'utilisateur se connectant au serveur (option -U suivie du nom de l'utilisateur), le nom de la base de données à sauvegarder...

Attention, si la base est volumineuse, la sauvegarde peut prendre un moment... "Il ne se passe rien" peut alors correspondre à une sauvegarde en cours, mais qui prend du temps... Il faut regarder si le fichier cible se crée et s'il grossit.
Sinon, il faut mieux expliquer ce "il ne se passe rien".

ced
__________________
Rédacteur / Modérateur SGBD
Mes tutoriels et la FAQ MySQL

----------------------------------------------------
Pensez aux balises code et au tag
Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça
ced est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/01/2011, 17h34   #4
Candidat au titre de Membre du Club
 
ben gr
Inscription : octobre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : ben gr

Informations forums :
Inscription : octobre 2010
Messages : 49
Points : 10
Points : 10
Bonjour et merci pour votre aide. Je pense que je confonds certains qui fond que j'ai du mal à mettre en œuvre la commande pg_dump.

Comme je le disais plus haut j'ai réussi à mettre en place un batch qui vide ma table. Je souhaiterais maintenant que ce batch exécute une sauvegarde de ma table.

Le batch est ainsi construit :
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
 
@echo off
 
REM PostgreSQL server psql runner script FOR Windows
REM Dave Page, EnterpriseDB
 
SET server=localhost
 
 
SET DATABASE=postgis
 
 
SET port=5432
 
SET username=postgres
 
SET vidertable="C:\PostgreSQL\9.0\scripts\vidertable.sql"
 
 
FOR /f "delims=" %%a IN ('chcp ^|find /c "932"') do @ SET CLIENTENCODING_JP=%%a
IF "%CLIENTENCODING_JP%"=="1" SET PGCLIENTENCODING=SJIS
IF "%CLIENTENCODING_JP%"=="1" SET /P PGCLIENTENCODING="Client Encoding [%PGCLIENTENCODING%]: "
 
REM Run psql
"C:\PostgreSQL\9.0\bin\psql.exe" -h %server% -U %username% -d %database% -p %port% -f %vidertable%
 
 
pause
et le contenu de mon fichier .sql "vidertable") :
Code :
DELETE FROM test_trigger;
C'est dans un fichier sql que je voudrais intégrer le code pg_dump pour sauvegarder ma table automatiquement. La doc postgresql indique
Citation:
Sauvegarder une base appelée ma_base dans un script SQL :
Est ce que un .sql est considéré comme un script sql?

J'ai essayé de mettre dans fichier .sql pg_dump et les options proposées par CED avec également une option -f mais aucun fichier ne se crée.
J'ai essayé sans option il me renvoie une même erreur de syntaxe à savoir
Code :
1
2
(error syntaxe near pg_dump)
                                    ^
renardchan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 13h56   #5
Modérateur
 
Inscription : octobre 2008
Messages : 1 505
Détails du profil
Informations personnelles :
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2008
Messages : 1 505
Points : 2 034
Points : 2 034
pg_dump n'est pas une commande SQL, c'est un programme à part entière, au même niveau que psql.exe. C'est pourquoi il doit être appelé en ligne de commande ou dans un fichier batch et non dans un script SQL.
D'après le code du batch montré dans ton message, l'appel à pg_dump devrait être ajouté dans le fichier .BAT suivant ce modèle:
Citation:
"C:\PostgreSQL\9.0\bin\pg_dump.exe" -h %server% -U %username% -p %port% -t nom_de_la_table %database% > backup.sql
Il reste à remplacer nom_de_la_table par le vrai nom et à remplacer backup.sql par un chemin complet.
estofilo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/01/2011, 15h44   #6
Candidat au titre de Membre du Club
 
ben gr
Inscription : octobre 2010
Messages : 49
Détails du profil
Informations personnelles :
Nom : ben gr

Informations forums :
Inscription : octobre 2010
Messages : 49
Points : 10
Points : 10
Un grand merci estofilo,
Etant peu expérimenté en BDD, ta réponse m'a bien aidé à comprendre le pourquoi du comment. J'ai finalement réussi à mettre en oeuvre mon pg_dump.
renardchan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h28.


 
 
 
 
Partenaires

Hébergement Web