我在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)
但没有位置,保留位置的任何想法?
感谢
答案 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