2016-02-05 1 views
0

je suis en utilisant postgres 9.2 sur RedHat 6Où dans le DB est l'emplacement d'un tablespace postgres stocké

cela devrait être simple, mais je ne peux pas le trouver nulle part. Je suis à la recherche de la table de base de données et de la colonne qui stocke l'emplacement pour un tablespace postgres, je pensais que ce serait pg_tablespace, mais

select * from pg_tablespace 

montre ...

postgres=# select * from pg_tablespace; 
    spcname  | spcowner | spcacl | spcoptions 
-----------------+----------+--------+------------ 
pg_default  |  10 |  | 
pg_global  |  10 |  | 
C_TBL_DB91SABIR |  10 |  | 
(3 rows) 

mais pas d'emplacement, tout des idées où l'emplacement est conservé?

grâce

+0

pas la réponse exacte: SHOW data_directory, 'vous indiquer l'emplacement du courant DB –

+0

salut @wingedpanther, qui montre l'emplacement PGDATA, mais je cherche le répertoire de l'espace de table, je veux l'interroger afin que je puisse écrire une suppression du dossier physique quand un tablespace est abandonné. – davegreen100

+2

Essayez ceci 'select spcname, pg_tablespace_location (oid) de pg_tablespace; ' –

Répondre

5

Utilisez pg_tablespace_location(tablespace_oid) (PostgreSQL 9.2+) pour obtenir le chemin d'accès dans le système de fichiers où le tablespace est situé.

Vous obtiendrez oid de tablespace de pg_tablespace, de sorte que la requête doit être

select spcname 
     ,pg_tablespace_location(oid) 
from pg_tablespace;