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 04/12/2009 10:15:57

hfilliere
Membre

Répartition du contenu de PGDATA sur plusieurs FS

Y'a t'il un moyen technique pour répartir le contenu de PGDATA(les répertoires) sans créer de points de montages pour chaque répertoire.

merci de votre aide.

Hors ligne

#2 04/12/2009 10:25:21

gleu
Administrateur

Re : Répartition du contenu de PGDATA sur plusieurs FS

À partir de la 8.0, il est possible de créer des tablespaces:

CREATE TABLESPACE montage1 LOCATION '/mnt/m1';
CREATE TABLESPACE montage2 LOCATION '/mnt/m2';

Ensuite, il est possible de créer les objets directement dans ces tablespaces:

CREATE TABLE t1 (id integer) TABLESPACE montage1;
CREATE DATABASE b1 TABLESPACE montage2;

Et même de déplacer des objets existants vers un autre tablespace:

ALTER TABLE t1 SET TABLESPACE montage2;
ALTER INDEX i2 SET TABLESPACE montage1;
ALTER DATABASE b2 SET TABLESPACE montage1;

Bref, autrement dit, les tablespaces permettent de mettre les objets (base, table et index) dans des répertoires différents du répertoire des données, le tout à chaud.


Guillaume.

Hors ligne

#3 04/12/2009 10:26:37

gleu
Administrateur

Re : Répartition du contenu de PGDATA sur plusieurs FS

Ne pas hésitez à lire http://docs.postgresqlfr.org/8.4/manage … paces.html pour avoir plus de détails.


Guillaume.

Hors ligne

#4 04/12/2009 10:36:57

hfilliere
Membre

Re : Répartition du contenu de PGDATA sur plusieurs FS

Merci Guillaume pour ta réponse.

Et Pour les répertoires suivants de PGDATA???

base  pg_multixact  pg_twophase 
global  pg_subtrans  pg_clog  pg_log pg_xlog

merci encore.

Hors ligne

#5 04/12/2009 10:47:17

gleu
Administrateur

Re : Répartition du contenu de PGDATA sur plusieurs FS

Le répertoire base contient les bases de données et leurs objets, donc il est géré via les tablespaces. Les autres ne le sont pas et ne peuvent pas l'être. Ceci dit, il n'y a réellement que pg_xlog qui a un intérêt à être déplacé (pour justement paralléliser les écritures entre journaux de transaction et fichiers de données). Pour cela, soit tu fais l'initdb avec l'option -X soit tu fais toi-même le lien symbolique qui va bien.

Autrement dit, les tablespaces, ce n'est que pour les objets de chaque base.


Guillaume.

Hors ligne

#6 04/12/2009 11:00:45

hfilliere
Membre

Re : Répartition du contenu de PGDATA sur plusieurs FS

Je comprend. Quelle est alors l'utilité de ces répertoires, s'il n'y a pas de données stockées qui évoluent dans le temps??

pg_multixact  pg_twophase global  pg_subtrans  pg_clog  pg_log

Puis-je les considérer comme des répertoires de traces/logs/configs ???

merci

Hors ligne

#7 04/12/2009 11:12:24

gleu
Administrateur

Re : Répartition du contenu de PGDATA sur plusieurs FS

Non, ils ont tous une utilité. Mais ce ne sont pas des objets SQL, donc ils ne peuvent pas être déplacés via des tablespaces. pg_twophase gère les données binaires du twophase commit, global contient les tables globales à l'instance (ce sont donc des tables systèmes, donc non déplaçables), pg_subtrans et pg_multixact contient des données sur les sous-transactions et les transactions multiples, pg_clog contient des informations de statut sur les transactions et pg_log contient les traces de PostgreSQL. De tous ces répertoires, seuls pg_clog et pg_log vont être modifiés fréquemment.


Guillaume.

Hors ligne

#8 04/12/2009 11:28:17

hfilliere
Membre

Re : Répartition du contenu de PGDATA sur plusieurs FS

merci à toi pour toutes ces réponses précises.

Bonne journée à toi. ;-)

Hors ligne

Pied de page des forums