2016-02-05 59 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;