数据库中的位置是存储的postgres表空间的位置

时间:2016-02-05 10:32:45

标签: postgresql postgresql-9.2 tablespace

我在redhat 6上使用postgres 9.2

这应该很简单但我无法在任何地方找到它。我正在寻找存储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)

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

感谢

2 个答案:

答案 0 :(得分:13)

使用pg_tablespace_location(tablespace_oid)(PostgreSQL 9.2+)获取tablespace所在文件系统中的路径。

您将从oid获得tablespace pg_tablespace,因此查询应为

select spcname
      ,pg_tablespace_location(oid) 
from   pg_tablespace;

答案 1 :(得分:-1)

使用以下查询获取表空间名称表空间位置。

postgres=# select spcname ,pg_tablespace_location(oid) from pg_tablespace;
  spcname   |    pg_tablespace_location     
------------+-------------------------------
 pg_default | 
 pg_global  | 
 fastspace  | /var/lib/postgresql/data/base
 demotbs    | /var/lib/postgresql/data