2025-12-30
PostgreSQL
0

目录

grep data_directory postgresql.conf

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目录包含几个子目录以及一些控制文件。

echoechoPGDATA /var/lib/pgsql/9.5/data

注意:如果没有配置变量PGDATA的话,这种方式也是不行的。

[postgres@KerryDB ~]echo e c h o PGDATA