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 30/11/2009 18:51:14

Pb restauration d'un dump partiel

Bonjour,

J'ai un pb de restauration d'un dump partiel.

Si je fais un dump avec "pg_dump -h host -U user -p port -c db > file.sql", je n'ai pas de pb.

Je ne peux pas toujours utiliser cette commande car j'ai des schémas qui sont énormes et donc je n'ai pas besoin.
J'utilise donc "pg_dump -h host -U user -p port -c -N sch_site_????????_archivage db > file.sql".
La différence est que j'exclue des schémas du dump.

Si je restore un dump partiel, la restauration n'est pas bonne.
Les schémas sont bien créés, mais seulement qq tables le sont.

Merci de votre aide

Hors ligne

#2 30/11/2009 19:08:32

Marc Cousin
Membre

Re : Pb restauration d'un dump partiel

Merci de commencer par expliquer exactement où est le problème : quelle table n'est pas restaurée, de quel schéma, à quoi vous attendiez vous ?
La question est trop vague pour le moment ?


Marc.

Hors ligne

#3 30/11/2009 19:20:46

Re : Pb restauration d'un dump partiel

Je vais donc essayé d'être plus précis.

Exple:
J'ai 10 schémas ayant chacun 20 tables - certaines héritant d'autres.
Les schémas sont tous créés, mais seules les tables de 1 schéma sont créées.
Si je ré-exécute le restore, toutes les tables se crééent correctement.

je ne vois pas comment être plus clair, si ce n'est en fournissant le dump.
Quelle type d'info voulez-vous?

Cdlt

Hors ligne

#4 30/11/2009 19:35:00

Marc Cousin
Membre

Re : Pb restauration d'un dump partiel

Ce que vous reprochez à pg_dump, c'est de ne pas dumper la structure des tables contenues dans des schémas que vous avez choisi d'ignorer ?

Dernière modification par Marc Cousin (30/11/2009 19:35:13)


Marc.

Hors ligne

#5 30/11/2009 22:30:16

gleu
Administrateur

Re : Pb restauration d'un dump partiel

Quelle type d'info voulez-vous?

L'erreur que vous avez à la restauration serait un bon début.


Guillaume.

Hors ligne

#6 01/12/2009 10:27:05

Re : Pb restauration d'un dump partiel

Je n'ai malheureusement aucune erreur qui remonte. Apparemment, tout se passe bien, mais en réalité, non.
J'ai le fichier log fait par psql. Ce log est dispo à l'URL : http://www.filedropper.com/pg_1

Merci d'avance

Hors ligne

#7 01/12/2009 19:13:05

Marc Cousin
Membre

Re : Pb restauration d'un dump partiel

Il ne semble pas y avoir d'erreur dans le fichier de log. Pourriez vous expliquer ce qui pose problème ?


Marc.

Hors ligne

#8 01/12/2009 19:21:14

Re : Pb restauration d'un dump partiel

Une fois le restore effectuée (apparemment ss pb), j'ouvre PGAdmin pour faire qq vérifications.
Hors, la majorité des schémas n'a aucune table....

J'utilise PSQL pour faire le restore. Est-ce la bonne méthode?
Utilisant  DUMP en mode sélectif, ne devrais-je pas utiliser PG_RESTORE?

Hors ligne

#9 01/12/2009 20:14:24

Marc Cousin
Membre

Re : Pb restauration d'un dump partiel

Si dans votre dump vous n'avez demandé le dump que de certains schémas il est normal que les autres soient vides


Marc.

Hors ligne

#10 02/12/2009 10:10:35

gleu
Administrateur

Re : Pb restauration d'un dump partiel

Pouvez-vous nous fournir la commande exacte que vous utilisez pour faire la sauvegarde et celle pour faire la restauration ?


Guillaume.

Hors ligne

#11 02/12/2009 10:21:33

Re : Pb restauration d'un dump partiel

Bonjour,

La commande que j'utilise pour la sauvegarde est :
"pg_dump -h host -U user -p port -c -N sch_site_????????_archivage db > file.sql"

La commande que j'utilise pour la restauration est :
"psql.exe -h host -U user -p port -f script base"

Dernière modification par energiesysteme (02/12/2009 10:22:11)

Hors ligne

#12 02/12/2009 10:26:53

Re : Pb restauration d'un dump partiel

Marc COUSIN,

Je me doute bien que si un schéma n'est pas sauvegardé, il ne pourra être restitué; il ne sera même pas recréé car pas ds le backup.
Dans le cas présent, les schémas présents ds le backup sont bien tous créés, mais ne sont pas tous complétés.

Dans quel cas utiliser PSQL et ds quel cas utiliser PG_RESTORE?

Hors ligne

#13 02/12/2009 14:45:43

gleu
Administrateur

Re : Pb restauration d'un dump partiel

Dans quel cas utiliser PSQL et ds quel cas utiliser PG_RESTORE?

psql ne peut restaurer que les sauvegardes au format SQL (format par défaut, option -Fp). pg_restore ne peut restaurer que les bases au format binaire (option -Ft ou -Fc). Donc, dans votre cas, ça ne peut être que psql.

Concernant le fichier de log que vous fournissez, ce n'est clairement pas le fichier de log de PostgreSQL. Ou alors c'est un fichier fortement modifié, et donc sans intérêt.

Vu que vous êtes apparemment sous Windows, si vous n'avez pas activé le log collector, il y a de fortes chances que les traces se trouvent dans le journal des événements. Le plus simple dans ce cas est d'activer le log collector (paramètre logging_collector) pour tout récupérer dans un fichier et nous l'envoyer.


Guillaume.

Hors ligne

#14 02/12/2009 15:04:30

Re : Pb restauration d'un dump partiel

Je pense avoir compris.

L'utilisation de PG_DUMP/PSQL fonctionne en SQL soit. Mais il faut aussi que le dump soit un dump sans restriction de schéma.
Si j'utilise PG_DUMP/PG_RESTORE avec Fc ou Ft, cela fonctionne parfaitement; même avec exclusion de schéma!

Peut-être y-a-t-il une restriction à l'utilisation de l'exclusion de schéma.

Merci pour vos pistes.

Hors ligne

#15 02/12/2009 15:23:03

Re : Pb restauration d'un dump partiel

J'oubliais, je vous confirme que le log que j'ai fourni vient bien de PSQL.

Hors ligne

#16 02/12/2009 17:10:54

gleu
Administrateur

Re : Pb restauration d'un dump partiel

je vous confirme que le log que j'ai fourni vient bien de PSQL.

Sincèrement, je n'y crois pas une seconde. C'est un log applicatif, ou un log du driver PostgreSQL, ou autre chose. Mais clairement, ce ne sont pas des traces générées par le serveur PostgreSQL. Sauf traitement après coup. Attention, je parle bien du serveur, pas des clients, pas des pilotes de connexion, etc.


Guillaume.

Hors ligne

#17 02/12/2009 17:56:09

Re : Pb restauration d'un dump partiel

La seule chose que je peux certifier, c'est que je ne me suis pas amusé à modifier un fichier de plus de 1Mo.
Il me semble que que l'ai eu via PSQL -L

Si cela vous semble douteux, je pourrai le refaire.

Hors ligne

#18 02/12/2009 18:09:04

gleu
Administrateur

Re : Pb restauration d'un dump partiel

psql est un client, pas le serveur PostgreSQL. Si vous voulez récupérer les messages d'erreur à partir du client, il faut aussi rediriger la sortie des erreurs. Par exemple :

psql -f sauvegarde.sql la_base 2>&1 | tee psql.log

Et psql.log contiendra la sortie standard et celle des erreurs du client psql... arg, je viens de me rappeler que c'est sous Windows. Donc, non, il faut absolument récupérer les traces du serveur PostgreSQL. Et psql n'est pas capable de vous les fournir. Il faut regarder la config de PostgreSQL pour savoir où ces derniers sont enregistrés.


Guillaume.

Hors ligne

#19 03/12/2009 10:20:20

Re : Pb restauration d'un dump partiel

OK.

C'est vraiq ue PSQL est client. Pour moi c'était aussi coté serveur, mais non.
Mes tests avec PG_DUMP/PG_RESTORE fonctionne nickel, donc, je classe l'affaire.

Je vous remercie tous des conseils que vous m'avez donné.

Hors ligne

Pied de page des forums