Vous n'êtes pas identifié(e).
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
À 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
Ne pas hésitez à lire http://docs.postgresqlfr.org/8.4/manage … paces.html pour avoir plus de détails.
Guillaume.
Hors ligne
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
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
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
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
merci à toi pour toutes ces réponses précises.
Bonne journée à toi. ;-)
Hors ligne