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 07/10/2016 15:54:36

k13
Membre

Probleme pg_dump [programme d'archivage (db)]

Bonjour,

Je me permets de creer un sujet car j'ai un soucis avec pg_dump. J'ai l'erreur suivante :

# pg_dump --username=postgres --no-password --verbose -N 'DE_*' --compress=2 --file=mydum.dump --format=custom MyBase
pg_dump: lecture des extensions
pg_dump: identification des membres d'extension
pg_dump: lecture des schémas
pg_dump: lecture des tables utilisateur
pg_dump: [programme d'archivage (db)] échec de la requête : ERROR:  schema "DE_17" does not exist
pg_dump: [programme d'archivage (db)] la requête était : LOCK TABLE "DE_17"."dataLineIn" IN ACCESS SHARE MODE

Le probleme n'est pas systematique, par moment ca fonctionne sans erreur. J'avais ajouter l'option -N pour ne plus avoir de probleme avec les schemas mais cela ne semble pas regler le probleme

Avez vous une idee ?

Bonne apres midi

Hors ligne

#2 07/10/2016 16:26:09

rjuju
Administrateur

Re : Probleme pg_dump [programme d'archivage (db)]

Bonjour,

De quelle version de postgres s'agit-il ? (serveur et binaire pg_dump).  Est-ce que votre applicatif créé et supprime de très nombreux schéma ? Il est possible qu'un dump échoue ainsi, mais c'est plutôt improbable.  Sauf si votre catalogue système est extrêmement fragmenté et que récupérer la liste des tables prend un temps non négligeable. Quelle est la taille des objets pg_class, pg_attribute et pg_namespace sur la base que vous sauvegardez ?

Hors ligne

#3 08/10/2016 19:40:39

dverite
Membre

Re : Probleme pg_dump [programme d'archivage (db)]

Le schéma DE_17 n'est pas exclu du dump malgré l'option -N 'DE_*' parce que les règles de mise en minuscule du SQL s'appliquent sur cette option.

La doc de pg_dump ramène à celle de psql au sujet de ces "motifs", et cette dernière doc dit:

http://docs.postgresqlfr.org/9.6/app-psql.html

Les caractères à l'intérieur du motif sont normalement mis en minuscule comme pour les noms SQL ;
par exemple, \dt FOO affichera la table nommée foo.
Comme pour les noms SQL, placer des guillemets doubles autour d'un motif empêchera la mise en minuscule

Donc pour exclure ces schémas en majuscules, il faudrait ajouter des guillemets autour de la partie fixe du motif, soit

pg_dump -N '"DE_"*'  [...autres options]...

Dernière modification par dverite (08/10/2016 19:42:27)

Hors ligne

#4 10/10/2016 09:01:36

k13
Membre

Re : Probleme pg_dump [programme d'archivage (db)]

Bonjour,

Merci pour vos reponses. Je suis en pg 9.5.3.
Oui l'applicatif supprime des schemas, alors je pense qu'au debut du dump le schema est present et il serait supprimer ensuite.

La notation  '"DE_"*'  semble fonctionner.

A+

Hors ligne

Pied de page des forums