代码改变世界

PostgreSQL查看数据目录总结

2021-01-08 11:59  潇湘隐者  阅读(8479)  评论(3编辑  收藏  举报

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)

 

clip_image001

 

方法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