IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

PostgreSQL Discussion :

[pg_dump] Erreur relation "X" does not exist


Sujet :

PostgreSQL

  1. #1
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut [pg_dump] Erreur relation "X" does not exist
    Bonjour

    J'ai une base Postgresql 8.2 sur laquelle je fais quotidiennement un pg_dump pour sauvegarde
    Depuis peu, j'ai des traitements créant et supprimant des tables temporaires qui tournent pendant ma sauvegarde, et il arrive parfois que mon pg_dump plante avec l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    pg_dump -F c MA_BDD > fichier.dump
    pg_dump: SQL command failed
    pg_dump: Error message from server: ERROR:  relation "mon_schema.ma_table" 
    does not exist
    pg_dump: The command was: LOCK TABLE mon_schema.ma_table IN ACCESS SHARE MODE
    Ainsi il semble que comme ma table existe avant de lancer pg_dump mais est supprimée pendant le dump, pg_dump renvoie une erreur et du coup ma sauvegarde se plante en n'ayant rien sauvegardé dans mon fichier.dump

    Quelqu'un a-t-il déjà rencontré ce problème ?
    Existe-t-il un moyen de le contourner en continuant quand même le dump ?
    Pour information les tables temporaires ont un nom aléatoire donc impossible de les exclure spécifiquement de mon pg_dump avec l'option -T

    Merci d'avance
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  2. #2
    Membre émérite
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Points : 2 890
    Points
    2 890
    Par défaut
    Si fu fais de vraies tables temporaires avec CREATE TEMPORARY TABLE, j'imagine que le problème ne se posera pas.

    Si ce n'est pas possible, une autre suggestion est de les créer dans un schéma spécifique qui sera exclu de la sauvegarde avec l'option --exclude-schema de pg_dump.

  3. #3
    Membre expérimenté Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Points : 1 734
    Points
    1 734
    Par défaut
    Merci pour ta réponse

    Malheureusement les tables ne peuvent être pas créées en tant que "TEMPORARY TABLE" car ce sont des tables de travail qui sont supprimées après le traitement si celui-ci est OK, mais en cas d'échec du traitement les tables sont conservées pour pouvoir permettre une analyse ultérieure du problème

    Effectivement à part exclure de la sauvegarde le schéma qui contient mes tables concernées je ne vois pas d'autre solution

    C'est juste dommage que pg_dump ne sait pas gérer les tables droppées pendant que le dump est en cours, au pire il aurait pu afficher un warning et continuer le dump des autres tables, car là s'arrêter brusquement et ne rien sauvegarder c'est déjà plus problématique ...

    Merci quand-même en tout cas
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  4. #4
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 763
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 763
    Points : 52 554
    Points
    52 554
    Billets dans le blog
    5
    Par défaut
    Une solution plus pro consiste à créer une base tampon dans laquelle tu place tout ce genre de tables et que tu ne sauvegarde jamais !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

Discussions similaires

  1. erreur a la compilation ,package does not existe
    Par 304bl dans le forum Général Java
    Réponses: 3
    Dernier message: 12/07/2011, 10h41
  2. [2.x] Erreur Item "nom_champ_dematable" for "Array" does not exist
    Par tbreton dans le forum Symfony
    Réponses: 5
    Dernier message: 09/06/2011, 15h02
  3. Réponses: 1
    Dernier message: 12/11/2007, 16h43
  4. Réponses: 4
    Dernier message: 24/04/2007, 18h33

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo