1. 程式人生 > 實用技巧 >PostgreSQL檢視資料目錄總結

PostgreSQL檢視資料目錄總結

PostgreSQL資料庫中,如何檢視PostgreSQL的資料目錄呢? 測試驗證了一下,大概有下面幾種方法:

方法1

postgres=# show data_directory;
 data_directory 
---------------------------
 /home/postgres/pgsql_data
(1 row)

方法2

postgres=# select setting from pg_settings where name='data_directory';
 setting 
---------------------------
 /home/postgres/pgsql_data
(1 row)

方法3

postgresql.conf檔案中檢視,但是這種方式有可能無法獲取到資料目錄的配置,因為在有些情況下,可能在postgresql.conf中沒有配置data_directory引數

# grep data_directory postgresql.conf

方法4

ps命令檢視,如下你會看到引數-D後面的值就是PostgreSQL的資料目錄。

[root@KerryDB ~]# ps -ef | grep postgres | grep -v postgres:
postgres 22998 1 0 Jan06 ? 00:00:01 /home/postgres/pgsql/bin/postgres -D /home/postgres/pgsql_data
root 26737 26692 0 11:36 pts/0 00:00:00 su - postgres
postgres 26738 26737 0 11:36 pts/0 00:00:00 -bash
postgres 26766 26738 0 11:36 pts/0 00:00:00 /bin/bash /home/postgres/pgsql/bin/psql
postgres 26768 26766 0 11:36 pts/0 00:00:00 /home/postgres/pgsql/bin/psql.bin
root 27413 26788 0 11:45 pts/1 00:00:00 grep --color=auto postgres
[root@KerryDB ~]# ps ax | grep postgres | grep -v postgres:
 7154 pts/3 S 0:00 su - postgres
 7182 pts/3 T 0:00 /bin/bash /home/postgres/pgsql/bin/psql
 7184 pts/3 T 0:00 /home/postgres/pgsql/bin/psql.bin
 7506 pts/3 S+ 0:00 /bin/bash /home/postgres/pgsql/bin/psql
 7508 pts/3 S+ 0:00 /home/postgres/pgsql/bin/psql.bin
 7903 pts/0 S+ 0:00 grep --color=auto postgres
22998 ? S 0:00 /home/postgres/pgsql/bin/postgres -D /home/postgres/pgsql_data

其實最簡單的方法就是這個命令

[root@KerryDB ~]# ps -ax | grep postgres | grep "\-D"
22998 ? S 0:01 /home/postgres/pgsql/bin/postgres -D /home/postgres/pgsql_data

方法5

檢視環境變數PGDATA。在傳統上,資料庫集簇所使用的配置和資料檔案都被一起儲存在集簇的資料目錄裡,通常用PGDATA來引用(用的是可以定義它的環境變數的名字)。PGDATA的一個常見位置是/var/lib/pgsql/data。由不同資料庫例項所管理的多個集簇可以在同一臺機器上共存。PGDATA目錄包含幾個子目錄以及一些控制檔案。

$ echo $PGDATA
/var/lib/pgsql/9.5/data

注意:如果沒有配置變數PGDATA的話,這種方式也是不行的。

[postgres@KerryDB ~]$ echo $PGDATA