文件和目录信息技巧

获取有关 PostgreSQL 数据目录和配置文件位置的信息。

获取数据目录的位置
postgres=# SHOW data_directory;
   data_directory
---------------------
 /var/lib/pgsql/data
(1 row)

postgres=# SELECT current_setting('data_directory');
   current_setting
---------------------
 /var/lib/pgsql/data
(1 row)

postgres=# SELECT setting FROM pg_settings WHERE name = 'data_directory';
       setting
---------------------
 /var/lib/pgsql/data
 (1 row)

请注意,data_directory 参数的值仅对超级用户可见,或者从 PostgreSQL 10 开始对 默认角色 pg_read_all_settings 的成员可见。

获取主要配置文件 (postgresql.confpg_hba.confpg_ident.conf) 的位置
postgres=# SELECT current_setting('config_file');
               setting
------------------------------------
 /var/lib/pgsql/data/postgresql.conf
 (1 row)

postgres=# SELECT current_setting('hba_file');
             setting
---------------------------------
 /var/lib/pgsql/data/pg_hba.conf
 (1 row)

postgres=# SELECT current_setting('ident_file');
              setting
-----------------------------------
 /var/lib/pgsql/data/pg_ident.conf
 (1 row)