Vous n'êtes pas identifié(e).
Pages : 1
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
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
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
Décrivez la manipulation complète : qu'appelez vous "redémarrer postgres" et "sous mon user".
Marc.
Hors ligne
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
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
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
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
Bonjour,
Je tiens à vous remercier pour les conseils.
J'ai pu "récupérer" ma base de données.
Bien cordialement Philippe
Hors ligne
Pages : 1