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 :

Problème sur Dump puis Restore de schéma spécifique


Sujet :

PostgreSQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut Problème sur Dump puis Restore de schéma spécifique
    Bonjour,

    je réalise un dump puis une restauration de schéma spécifique mais je n'arrive pas à recréer la structure du schéma :

    voici la sauvegarde actuelle :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pg_dump -F c -f "$SAUVBASE\svg_pg.sql" -n public -n journal -U utilisateur bdd
    Avant la sauvegarde était :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pg_dump -c -D -f "$SAUVBASE\svg_pg.sql" -n public -U utilisateur bdd
    Mais il commence à y avoir trop de données nous avons donc compressé avec l'option -F c.

    Dans la doc il est marqué que l'option -c permet de recréer la structure que lorsque nous n'avons pas compressé.

    Comment fait-on dans le cas ou le fichier est compressé ?


    Puis avant la restauration nous vidons les schémas :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    psql bdd -U utilisateur -q -c "DROP SCHEMA IF EXISTS public CASCADE;"
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    psql bdd -U utilisateur -q -c "DROP SCHEMA IF EXISTS journal CASCADE;"
    Enfin restauration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pg_restore -d bdd -U utilisateur "$SAUVBASE\svg_pg.sql"
    Le problème c'est qu'avant la restauration il y a bien suppression des schémas, mais lors de la restauration la création de la structure des schéma ne se fait pas ...

    Point important : entre la sauvegarde et la restauration, la structure du schéma peu bouger donc nous avons besoin de supprimer le schéma (et ces tables) pour restaurer l'ancien (avec ses tables).

    Auriez-vous une idée de comment m'en sortir ?

    Merci d'avance

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Pourquoi tu ne recrées pas simplement le schéma manuellement avant de le restaurer (CREATE SCHEMA) ?
    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/

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    Bonjour,

    Citation Envoyé par scheu Voir le message
    Pourquoi tu ne recrées pas simplement le schéma manuellement avant de le restaurer (CREATE SCHEMA) ?
    En effet, je pourrais mais mon schéma contient plus d'une 20 aine de tables qui évoluent parfois dans le temps.
    Si je recrée le schéma, comment je fais pour l'ajout des tables, view, index... ?
    Car je dois le faire de manière automatique, je ne connais pas la structure de mon schéma et mes tables à l'instant t de la sauvegarde.

    DD

  4. #4
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 065
    Par défaut
    Pour ma part, j'utilise la sauvegarde compressée des schémas (option -n) régulièrement, et la première chose que fait la restauration, c'est de recréer le schéma.
    Par contre, ce qui est curieux dans votre syntaxe de sauvegarde, c'est que vous mettez 2 fois -n en précisant 2 schémas. Pas sûr que ce soit autorisé (il faudrait vérifier dans la doc de pg_dump).
    Pour ma part, je fais une sauvegarde propre à chaque schéma. De plus, je mets le nom du schéma entre guillemets. Et ça fonctionne parfaitement.
    Rédacteur / Modérateur SGBD et R
    Mes tutoriels et la FAQ MySQL

    ----------------------------------------------------
    Pensez aux balises code et au tag
    Une réponse vous a plu ? N'hésitez pas à y mettre un
    Je ne réponds pas aux questions techniques par message privé, les forums sont là pour ça

  5. #5
    Membre Expert
    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
    Par défaut
    Dans la doc il est marqué que l'option -c permet de recréer la structure que lorsque nous n'avons pas compressé.
    Il doit y avoir un problème d'interprétation ou de source d'information car les sauvegardes compressées permettent évidemment de recréer la structure.
    Quelle est la source? Quelle est la phrase exacte?

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    J'ai je pense enfin trouvé le problème de mon affaire ....

    En fait lorsque je réalise un dump du schéma public avec les options -F c (compressé custom) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pg_dump -F c -f "$SAUVBASE\svg_pg.sql" -n public -U utilisateur bdd
    => Absence d'un CREATE SCHEMA public ... dans le .sql généré

    Hors c'était le cas dans mes autres dump :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    pg_dump -F c -f "$SAUVBASE\svg_pg.sql" -n archive -U utilisateur bdd
    => Présence d'un CREATE SCHEMA archive ...

    Du coup comme je souhaitai restaurer mon schéma en l'état (celui de la sauvegarde) je réalisai un DROP SCHEMA IF EXISTS archive CASCADE; juste avant...

    Il y avait donc lors de la restauration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    psql bdd -U utilisateur -q -c "DROP SCHEMA IF EXISTS archive CASCADE;"
    pg_restore -d bdd -U utilisateur "$SAUVBASE\svgarc_pg.sql"
    => Le svgarc_pg.sql contenait un CREATE SCHEMA archive, puis réaliser toutes les création et autre...

    Lors de la même restauration avec le schéma public : le svg_pg.sql ne contenait pas de CREATE SCHEMA public, il plantait donc lors de la création des tables et autres...

    Pour contourner le problème j'ai du faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    psql bdd -U utilisateur -q -c "DROP SCHEMA IF EXISTS public CASCADE; CREATE SCHEMA public; ALTER SCHEMA public OWNER TO utilisateur;"
    pg_restore -d bdd -U utilisateur "$SAUVBASE\svgarc_pg.sql"
    Quelqu'un à déjà eu ça ?? Ou c'est moi qui ait pas tout compris ?

    Merci d'avance.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [11gR2] Problème sur restore + archivelogs
    Par Mickaouel dans le forum Administration
    Réponses: 2
    Dernier message: 25/02/2014, 00h33
  2. Réponses: 6
    Dernier message: 28/09/2010, 15h04
  3. [XL-2003] Problème sur une sélection puis séparation par une ligne blanche
    Par korni184 dans le forum Excel
    Réponses: 12
    Dernier message: 08/04/2010, 11h45
  4. Réponses: 1
    Dernier message: 15/07/2009, 16h53
  5. Backup sur SQL7 puis Restore sous SQL 2000
    Par souliced dans le forum Administration
    Réponses: 4
    Dernier message: 17/02/2006, 11h44

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