2016-02-05 57 views
0

我使用红帽6凡在DB是

的Postgres 9.2,这应该是简单的,但我不能在任何地方找到一个Postgres的表空间的位置存储。我找数据库表和列存储的Postgres的表空间的位置,我认为这将是在PG_TABLESPACE,但

select * from pg_tablespace 

显示...

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

,但没有位置,任何想法的位置保存?

感谢

+0

没有确切的答案:'SHOW data_directory;'会告诉你当前的位置DB –

+0

喜@wingedpanther,那就说明PGD​​ATA的位置,但我正在寻找表空间的目录,我想查询它,这样我就可以脚本删除表空间时删除物理文件夹。 – davegreen100

+2

试试这个'select spcname,pg_tablespace_location(oid)from pg_tablespace; ' –

回答

5

使用pg_tablespace_location(tablespace_oid)(PostgreSQL的9.2+),以获得在该tablespace所在的文件系统的路径。

你会从pg_tablespace得到tablespaceoid,所以查询应该是

select spcname 
     ,pg_tablespace_location(oid) 
from pg_tablespace;