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