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/07/2010 17:02:01

superlala
Membre

Restauration d'un shema parmis d'autres

Bonjour
J'utilise postgresql 8.1 sur une debian
J'execute mes sauvegardes de la maniere suivante :
pg_dump XXXXX > dossier_sauvegarde/database.dmp
dans le fichier 'plat' sql il y a bien mes deux shemas
AAAAA
BBBBB
je souhaite restaurer un seul shema
je fait alors
psql BBBBB < dossier_sauvegarde/database.dmp
et il me dit qu'il n'existe pas de base de données "YYYYYY"
et il a raison elle existe pas
Quelqu'un aurait une idée pour résoudre ce problème ?
Merci
philippe

Hors ligne

#2 30/07/2010 17:20:35

Marc Cousin
Membre

Re : Restauration d'un shema parmis d'autres

Bonjour, je pense qu'il y a une confusion entre schéma et base dans votre question.

Un schéma est un objet logique à l'intérieur d'une base. La commande :
psql BBBBB <
demande à psql de se connecter à la BASE BBBBB pour effectuer sa restauration.

Le problème que vous allez rencontrer, c'est que vous avez effectué un dump 'simple' (un script SQL). Vous ne pouvez donc pas sélectionner ce que vous restaurez (sauf à éditer le fichier SQL à la main, ce qui peut être compliqué si le fichier est très gros).


Marc.

Hors ligne

#3 02/08/2010 11:15:59

superlala
Membre

Re : Restauration d'un shema parmis d'autres

Bonjour

merci pour votre reponse

J'ai fait l'import des données avec l'user postgresql, ca a fonctionner, ensuite
ALTER schema monshemas OWNER TO monuser;
puis
ALTER DATABASE mabase OWNER TO monuser;
   
je redemmare postgres
sous mon user je fait \dn;
le schemas existe pas

sous le user postgres le mon \dn
je le vois avec comme owner monuser

Merci pour un conseil
philippe

Hors ligne

#4 02/08/2010 11:33:27

Marc Cousin
Membre

Re : Restauration d'un shema parmis d'autres

Décrivez la manipulation complète : qu'appelez vous "redémarrer postgres" et "sous mon user".


Marc.

Hors ligne

#5 02/08/2010 11:43:18

superlala
Membre

Re : Restauration d'un shema parmis d'autres

Bonjour
J'ai fait l'import des données avec l'user postgresql
1  # su postgres
2  # psql < database.dmp (ca a fonctionner)
3  # psql

ensuite
ALTER schema monshemas OWNER TO userTOTO;
puis
ALTER DATABASE mabase OWNER TO userTOTO;
   
je redemmare postgres (pour etre sur)
# /etc/init.d/postgresql-8.3 restart

connection avec le userTOTO
psql -d basededonnées -U userTOTO -W
psql: FATAL:  la base de données « basededonnées » n'existe pas

Hors ligne

#6 02/08/2010 11:52:50

Marc Cousin
Membre

Re : Restauration d'un shema parmis d'autres

Je pense que si vous mettiez les vrais noms ça serait plus facile pour tout le monde. Parce que 'basededonnées' n'existe pas, évidemment.


Marc.

Hors ligne

#7 02/08/2010 11:54:19

superlala
Membre

Re : Restauration d'un shema parmis d'autres

Bonjour
J'ai fait l'import des données avec l'user postgresql
1  # su postgres
2  # psql < database.dmp (ca a fonctionner)
3  # psql

ensuite
ALTER schema monshemas OWNER TO userTOTO;
puis
ALTER DATABASE mabase OWNER TO userTOTO;
   
je redemmare postgres (pour etre sur)
# /etc/init.d/postgresql-8.3 restart

connection avec le userTOTO
psql -d mabase -U userTOTO -W
psql: FATAL:  la base de données « mabase » n'existe pas

Hors ligne

#8 02/08/2010 11:59:58

gleu
Administrateur

Re : Restauration d'un shema parmis d'autres

L'étape 2 a restauré les données de la sauvegarde dans la base de données postgres. Tout simplement parce que vous n'avez pas indiqué de bases de données à psql et que, comme vous n'avez pas indiqué de base, il a cherché par rapport à différentes variables d'environnement (comme PGDATABASE) et qu'il a fini par utiliser comme nom de base celui du nom de l'utilisateur (ie postgres). Vous auriez dû lancer un "psql mabase < database.dmp" pour que les données soient restaurées dans la base mabase. Et d'après ce que je vois, la base mabase n'existe pas, il faut donc la créer avant de la restaurer. Un dump ne contient pas (par défaut) l'ordre de création de base (important pour que vous puissiez restaurer votre base dans une base qui a un autre nom).

Dernier point, redémarrer PostgreSQL ne sert à rien. Le seul moment où cela a un intérêt est lors de la modification de quelques paramètres de sa configuration (une vingtaine sur les 180 et quelques nécessite un redémarrage).


Guillaume.

Hors ligne

#9 03/08/2010 08:52:39

superlala
Membre

Re : Restauration d'un shema parmis d'autres

Bonjour,
Je tiens à vous remercier pour les conseils.
J'ai pu "récupérer" ma base de données.
Bien cordialement Philippe

Hors ligne

Pied de page des forums