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 16/03/2009 16:12:23

oci
Membre

changer l'emplacement des données

Bonjour à tous,

je utilise postgreSQL 8.1.4.

L'installation à été réalisée sur le /etc/postgresql/8.1/

Donc les données sont sauvegardées dans le répertoire
/etc/postgresql/8.1/main/pgdata.


Ce que moi je voudrais pouvoir faire, c'est que toutes les données de toutes mes bases, soient sauvegardées sur la partition /usr/local/pgsql.

Tout en sachant que  postgres fonctionne déjà avec des bases de données d'autres applications

Comment faire?

Merci d'avance pour vos réponses

Hors ligne

#2 16/03/2009 16:39:54

daamien
damien clochard

Re : changer l'emplacement des données

PostgreSQL te permet de créer des tablespaces, c'est à dire des espaces de stockage.
Par exemple :

CREATE TABLESPACE espace_secondaire LOCATION '/usr/local/pgsql';

Tu peux ensuite décider déplacer n'importe quel objet ( tables, index, fonction ) dans ce nouvel espace :

ALTER TABLE t1 SET TABLESPACE  espace_secondaire;

Plus d'info : http://docs.postgresqlfr.org/8.1/manage … paces.html

Hors ligne

#3 16/03/2009 17:03:28

oci
Membre

Re : changer l'emplacement des données

daamien a écrit :

PostgreSQL te permet de créer des tablespaces, c'est à dire des espaces de stockage.
Par exemple :

CREATE TABLESPACE espace_secondaire LOCATION '/usr/local/pgsql';

Tu peux ensuite décider déplacer n'importe quel objet ( tables, index, fonction ) dans ce nouvel espace :

ALTER TABLE t1 SET TABLESPACE  espace_secondaire;

Plus d'info : http://docs.postgresqlfr.org/8.1/manage … paces.html

Merci pour vos réponses

En fait ce que je voulais ce n'est pas de créer un espace secondaire mais plutôt de déplacer l'espace principal.

car malheureusement la personne qui avez installé postgresql l'avait fait sur la partition système et il n'a plus espace et je dois déplacer doit les données déjà existantes.

En cherchant dans les forums j'ai vue une solution sous Windows alors que moi je suis sur Debian

Solution windows


- Il faut stopper ton service postgresql

- copier tout le contenu de C:\Program Files\PostgreSQL\8.1\data dans E:\PostgreSQL\DATA

- aller dans le regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.1
et modifier la chaine ImagePath
"C:\Program Files\PostgreSQL\8.1\bin\pg_ctl.exe" runservice -N "pgsql-8.1" -D "C:\Program Files\PostgreSQL\8.1\data\"
en
"C:\Program Files\PostgreSQL\8.1\bin\pg_ctl.exe" runservice -N "pgsql-8.1" -D "E:\PostgreSQL\DATA\"

- dans HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Services\pgsql-8.1
modifier la chaine Data Directory

- dans HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\{un GUID}
modifier la chaine Data Directory

Avant de relancer le service, il faut donner les droits d'ecriture sur ce nouvel emplacement à l'user postgres
par exemple en utilisant cette commande : cacls E:\PostgreSQL\DATA /T /E /G postgres:C

si tu veux creer une base vide à un autre emplacement, c'est la meme procedure mais d'abord un petit initdb :

initdb -D E:\PostgreSQL\DATA

Merci d'avance

Hors ligne

#4 16/03/2009 17:04:29

oci
Membre

Re : changer l'emplacement des données

Merci pour vos réponses

En fait ce que je voulais ce n'est pas de créer un espace secondaire mais plutôt de déplacer l'espace principal.

car malheureusement la personne qui avez installé postgresql l'avait fait sur la partition système et il n'a plus espace et je dois déplacer doit les données déjà existantes.

En cherchant dans les forums j'ai vue une solution sous Windows alors que moi je suis sur Debian

Solution windows


- Il faut stopper ton service postgresql

- copier tout le contenu de C:\Program Files\PostgreSQL\8.1\data dans E:\PostgreSQL\DATA

- aller dans le regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.1
et modifier la chaine ImagePath
"C:\Program Files\PostgreSQL\8.1\bin\pg_ctl.exe" runservice -N "pgsql-8.1" -D "C:\Program Files\PostgreSQL\8.1\data\"
en
"C:\Program Files\PostgreSQL\8.1\bin\pg_ctl.exe" runservice -N "pgsql-8.1" -D "E:\PostgreSQL\DATA\"

- dans HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Services\pgsql-8.1
modifier la chaine Data Directory

- dans HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\{un GUID}
modifier la chaine Data Directory

Avant de relancer le service, il faut donner les droits d'ecriture sur ce nouvel emplacement à l'user postgres
par exemple en utilisant cette commande : cacls E:\PostgreSQL\DATA /T /E /G postgres:C

si tu veux creer une base vide à un autre emplacement, c'est la meme procedure mais d'abord un petit initdb :

initdb -D E:\PostgreSQL\DATA

Merci d'avance

Hors ligne

#5 16/03/2009 18:27:48

gleu
Administrateur

Re : changer l'emplacement des données

Il ne te reste donc plus qu'à transposer. Tu arrêtes PostgreSQL, tu copies le répertoire là où tu le souhaites (cp -r /etc/postgresql/8.1/main/pgdata /le/bon/endroit/pour/pgdata), tu renommes ton ancien répertoire de données (mv /etc/postgresql/8.1/main/pgdata /etc/postgresql/8.1/main/pgdata.old) et tu fais un lien du répertoire copié vers l'ancien nom (ln -s /le/bon/endroit/pour/pgdata /etc/postgresql/8.1/main/pgdata) puis tu relances PostgreSQL.

Attention aux droits et utilisateurs des fichiers/répertoires copiés.


Guillaume.

Hors ligne

#6 19/09/2009 18:07:11

kwantum
Membre

Re : changer l'emplacement des données

oci a écrit :

Merci pour vos réponses

En fait ce que je voulais ce n'est pas de créer un espace secondaire mais plutôt de déplacer l'espace principal.

car malheureusement la personne qui avez installé postgresql l'avait fait sur la partition système et il n'a plus espace et je dois déplacer doit les données déjà existantes.

En cherchant dans les forums j'ai vue une solution sous Windows alors que moi je suis sur Debian

Solution windows


- Il faut stopper ton service postgresql

- copier tout le contenu de C:\Program Files\PostgreSQL\8.1\data dans E:\PostgreSQL\DATA

- aller dans le regedit HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pgsql-8.1
et modifier la chaine ImagePath
"C:\Program Files\PostgreSQL\8.1\bin\pg_ctl.exe" runservice -N "pgsql-8.1" -D "C:\Program Files\PostgreSQL\8.1\data\"
en
"C:\Program Files\PostgreSQL\8.1\bin\pg_ctl.exe" runservice -N "pgsql-8.1" -D "E:\PostgreSQL\DATA\"

- dans HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Services\pgsql-8.1
modifier la chaine Data Directory

- dans HKEY_LOCAL_MACHINE\SOFTWARE\PostgreSQL\Installations\{un GUID}
modifier la chaine Data Directory

Avant de relancer le service, il faut donner les droits d'ecriture sur ce nouvel emplacement à l'user postgres
par exemple en utilisant cette commande : cacls E:\PostgreSQL\DATA /T /E /G postgres:C

si tu veux creer une base vide à un autre emplacement, c'est la meme procedure mais d'abord un petit initdb :

initdb -D E:\PostgreSQL\DATA

Merci d'avance

BONJOUR

Je cite : "Avant de relancer le service, il faut donner les droits d'ecriture sur ce nouvel emplacement à l'user postgres
par exemple en utilisant cette commande : cacls E:\PostgreSQL\DATA /T /E /G postgres:C"

Ma question: je tape ca ou ? je suis sous windows seven

Parceque je n'ai pas fait cette étape , et quand je lance le service, j'ai le droit a ce message : erreur systeme 5     acces refusé

Merci

Dernière modification par kwantum (19/09/2009 18:10:51)

Hors ligne

#7 19/09/2009 19:16:34

Marc Cousin
Membre

Re : changer l'emplacement des données

Dans une ligne de commande (cmd.com), si ça existe toujours sous seven smile


Marc.

Hors ligne

#8 19/09/2009 21:12:45

kwantum
Membre

Re : changer l'emplacement des données

Marc Cousin a écrit :

Dans une ligne de commande (cmd.com), si ça existe toujours sous seven smile

Salut marc ,merci pour ta réponse.

j'ai essayé dans cmd, mais vu que ca m'affichait que calcs n'est pas reconnu en tant que commande interne ou externe, je me suis dit qu'on devait peu etre taper ca ailleurs.

Après 2 heures a chercher sur le net, j'ai opté pour cette solution : réinstallation depostgre sur ma partition "non systeme" et réimportation de toutes mes donnés dans la nouvelle base.

Mais bon, c'est super long et j'aimerais bien savoir le faire histoire de ne pas devoir réimportés toutes mes donnés a chaque restauration de mon image systeme.

Hors ligne

#9 20/09/2009 11:01:51

Marc Cousin
Membre

Re : changer l'emplacement des données

Honnêtement je n'en sais rien. Cela fait très longtemps que je n'utilise plus windows.

Peut être quee cacls a été remplacé par autre chose dans windows seven ?


Marc.

Hors ligne

#10 20/09/2009 18:18:39

kwantum
Membre

Re : changer l'emplacement des données

Marc Cousin a écrit :

Honnêtement je n'en sais rien. Cela fait très longtemps que je n'utilise plus windows.

Peut être quee cacls a été remplacé par autre chose dans windows seven ?

Re, j'y ai pensé aussi mais sans avoir réussi a trouver hier, mais après avoir lu ton petit message j'ai réessayer et .....bingo. Il semblerait que ce soit Icalcs désormais. Donc merci a toi, je devrais pouvoir me débouiller maintenant. Bye

Hors ligne

Pied de page des forums