Vous n'êtes pas identifié(e).
Pages : 1
bonjour je cherche un petit script
en .sh qui parcours tous les schema d'une base de donnée
et qui lance /usr/local/pgsql/bin/pg_dump bd -Fc -x -O -t schemax.* -U mich > /home/mich/schemax.gz
comment fait t'on
merci
Hors ligne
La liste des schémas se trouve dans le catalogue système pg_namespace (http://docs.postgresqlfr.org/8.4/catalo … space.html).
Guillaume.
Hors ligne
r='select nspname from pg_namespace ;'
for s in `echo $r|psql --tuples-only`;
do
echo $s;
done;
tu remplaces la ligne echo $s par la commande que tu veux lancer
damien clochard
http://dalibo.org | http://dalibo.com
Hors ligne
Attention, ça ne marche que si les namespaces n'ont pas de caractère d'espacement dedans (sait on jamais )
Sinon il faut modifier la variable IFS à '^J' (controlV+J, l'escape du retour de chariot))
Marc.
Hors ligne
j'ai fait le script mis dans .sh il me sort echo $r|psql --tuples-only ???
merci
Hors ligne
Avez vous bien mis des 'backquotes' et non pas des quotes autour du echo ?
Marc.
Hors ligne
ok merci une petite question
a la place je mets $R pour parametrer les schemas ?
for s in `echo $r | /usr/local/pgsql/bin/pg_dump bd -Ft -x -O -n $r -U user > /home/moi/$r.tar
merci
#!/bin/sh
r='select nspname from pg_namespace where nspname ;
for s in `echo $r | /usr/local/pgsql/bin/pg_dump bd -Ft -x -O -n $r -U user > /home/moi/$r.tar
`
do echo $s;
done;
Hors ligne
j'ai contourné
j'ai créer un .sh et mis dedans ces 6 lignes
#$1 nom utilisateur acces base de donne
#$2 repertoire de destination
#$3 password
# exemple ./sauvegarde.sh mich /home/mich
/usr/local/pgsql/bin/pg_dump bd -Fc -x -O -n exemple2 -U $1 -w > $2/exemple2.gz
/usr/local/pgsql/bin/pg_dump bd -Fc -x -O -n exemple -U $1 -w > $2/exemple.gz
1ere question
je lance avec ./sauvegarde.sh mich /home/mich
il me demande 2 fois le mot de passe !!!
2) eme question
mon but est quand je fais un pg_dump il faut que le pgrestore se passe bien
j'ai vu que l'option -n dans la doc ne sauvegarde aucun objet j'ai mis -n car le nom du schéma .* ne marchez pas
cette ligne ci dessous ne marche pas
/usr/local/pgsql/bin/pg_dump bd -Fc -x -O exemple2.* -U $1 -w > $2/exemple2.gz
cette ligne ci dessous marche
/usr/local/pgsql/bin/pg_dump bd -Fc -x -O -n exemple -U $1 -w > $2/exemple.gz
mais l'option -n ne me plait pas
comment faites vous ?
merci beaucoup
Dernière modification par mich30 (15/01/2010 17:27:00)
Hors ligne
Pour la première question : il y a 2 commandes pg_dump, donc 2 demandes de mot de passe
Pour la seconde, aucune idée, je fais toujours des dumps complets, en format custom, histoire d'être sûr de tout pouvoir restaurer, de façon sélective.
Marc.
Hors ligne
c'est a dire la base de données complete ? , de sauvegarder par schéma ce n'est pas recommander ?
Hors ligne
peut tu me donner ta ligne de commande pg_dump merci
Hors ligne
1)
#!/bin/sh
export PGPASSWORD=mypassword
pg_dump -f back-up-file.sql -U toto mydatebase
ca ca marche il demande pas de mot de passe
2) sauvegarde par schema c'est pas trop bon ?
- vaux mieux une svg complete de la base ?
- puis sauvegarder des schemas
car en dump de la base en fin de semaine la place
sur mon nas va explosé!
@+
Hors ligne
La sauvegarde par schema ça peut être bon, si tu n'oublies aucun schéma (penser à mettre les nouveaux schémas dans le script de sauvegarde à chaque fois que tu en crées un nouveau), et si les données entre schémas n'ont pas besoin d'être cohérentes.
Marc.
Hors ligne
Merci Marc normalement il n' y a pas de lien entre schema
mais bon je vais faire un petit test de restauration avec l'option -n
pour éviter les mauvaises surprises
je vais faire aussi un pg_dump de ma base totale
- avec SELECT pg_database_size('mabase');
- puis apres compression avec custom ca comprime a combien 50% ?
- enfin je connaitrez l'espace comprimé et je le copierez sur mon nas
- c'est comme ca que tu fais toi ?
je te remercie
michel
Hors ligne
La compression réalisée dépend des données, il est donc impossible de répondre le pourcentage de compression auquel il faut s'attendre.
Guillaume.
Hors ligne
Ok merci , ta base totale tu la sauvegarde ou sur NAS , BANDE , ???
Merci
tu procedes comment en fait
merci !
Hors ligne
Le pg_dump, c'est vers disque. Après, le fichier, tu en fais ce que tu veux
Marc.
Hors ligne
Ok merci bon dimanche
Michel
Hors ligne
Pages : 1