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 Re : Général » changer l'emplacement des données » 16/03/2009 17:04:29

oci

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

#2 Re : Général » changer l'emplacement des données » 16/03/2009 17:03:28

oci
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

#3 Général » changer l'emplacement des données » 16/03/2009 16:12:23

oci
Réponses : 9

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

#4 Re : Général » démarrage postgre impossible tentative de modifi emplacement data » 09/03/2009 16:23:29

oci
gleu a écrit :

Si vous n'avez rien supprimé, oui, tentez une ré-installation.

Désole deux autres questions.

J'ai tenté de modifier l'emplacement des données car je n'avais pas d'espace sur le disque en effet. Celui qui avait installé posgres l'avait fais sur la partition Système. je voulais savoir si en reinstallant le service je peux préciser l'emplacement des données?

Et si oui est ce que je dois copier l'ancien répertoitre pgdata dans le nouveau emplacement?
Et si non comment puisses-je déplace les donnèes dans un nouveau emplacement?

Merci d'avance car ça fait trop de questions je suppose que vous comprenez

#5 Re : Général » démarrage postgre impossible tentative de modifi emplacement data » 09/03/2009 15:43:50

oci
gleu a écrit :

Il manque quelque chose dans les commandes car il n'y a aucune commande de déplacement de fichiers (mv).

Concernant le message d'erreur, il indique que des binaires ont été déplacés.

J'ai lu votre message et pourriez vous me donner plus de détails svp
merci!!!

#6 Re : Général » démarrage postgre impossible tentative de modifi emplacement data » 09/03/2009 15:41:56

oci

Pourriez vous m'indiquez ce qui pourrait manquer dans les commandes en eeffet je suis novice sous linux et sous posgres

#7 Général » démarrage postgre impossible tentative de modifi emplacement data » 09/03/2009 14:07:53

oci
Réponses : 7

Bonjour à Tous
Je souhaiterai votre aide
en effet;  j'essayais de modifier l'emplacement des données de mon SGBD PosgreSQL 8.1 sous débian.
voici les premieres instructions que j'ai excuté et les reponses

server1:/usr/lib/postgresql/8.1/bin# /etc/init.d/postgresql-8.1 stop Stopping PostgreSQL 8.1 database server: main.
server1:/usr/lib/postgresql/8.1/bin# mkdir -p /usr/local/pgsql/
server1:/usr/lib/postgresql/8.1/bin# chown postgres /usr/local/pgsql/
server1:/usr/lib/postgresql/8.1/bin# chmod 700 postgres /usr/local/pgsql/
server1:/usr/lib/postgresql/8.1/bin# su postgres
postgres@server1:/usr/lib/postgresql/8.1/bin$ /usr/lib/postgresql/8.1/bin/initdb  -D /usr/local/pgsql/
Le programme « postgres » est nécessaire à initdb mais n'a pas été trouvé dans
le même répertoire que « /usr/lib/postgresql/8.1/bin/initdb ».
Vérifiez votre installation.

suite à ce message d'erreur j'ai réessayé de démarrer le SGBD et il m'envoit les messages suivants

server1:/# /etc/init.d/postgresql-8.1 start
Starting PostgreSQL 8.1 database server: mainThe program "postmaster" is needed by pg_ctl but was not found in the same directory as "/usr/lib/postgresql/8.1/bin/pg_ctl". Check your installation. Use of uninitialized value in concatenation (.) or string at /usr/bin/pg_ctlcluster line 303. Error: could not exec /usr/lib/postgresql/8.1/bin/pg_ctl start -D /var/lib/postgresql/8.1/main -l /var/log/postgresql/postgresql-8.1-main.log -s -o -c config_file="/etc/postgresql/8.1/main/postgresql.conf" : failed!
failed!

Je voulais votre aide si quelqu'un a un idée?

Merci d'avance

Pied de page des forums

Propulsé par FluxBB