Команды для просмотра конфигурационных файлов и параметров в PostgreSQL

PostgreSQLПосле установки PostgreSQL часто нужно подправить конфигурационные параметры и потом посмотреть эффект. Лично у меня бывает так, что я не помню/не знаю, где находятся конфиг.файлы (например, если происходит установка PostgreSQL из пакетов — непонятно, куда эти файлы попадут).

Если устанавливать PostgreSQL из исходных кодов, можно задать расположение этих файлов — но это расположение можно забыть, через месяц-два.

Так что решил сохранить в одном месте все (мне) известные способы посмотреть места сохранения конфиг.файлов:

Для начала — в документации есть статья о том, какие есть конфигурационные файлы — расположение файлов.

Чтобы просмотреть расположение этих файлов, необходимо воспользоваться командой psql SHOW:

SHOW config_file;

           	config_file          	 
-----------------------------------------
 /etc/postgresql/12/main/postgresql.conf
(1 row)

SHOW data_directory;

   	data_directory   	 
-----------------------------
 /var/lib/postgresql/12/main
(1 row)

SHOW hba_file;

          	hba_file          	 
-------------------------------------
 /etc/postgresql/12/main/pg_hba.conf
(1 row)

SHOW ident_file;

          	ident_file          	 
---------------------------------------
 /etc/postgresql/12/main/pg_ident.conf
(1 row)

SHOW external_pid_file;

    	external_pid_file   	 
---------------------------------
 /var/run/postgresql/12-main.pid
(1 row)

 

Файл postgresql.auto.conf находится в каталоге с данными — в указанном выше data_directory.

Копируем путь и далее уже можем отредактировать эти файлы:

vim /etc/postgresql/12/main/postgresql.conf

Можно посмотреть некоторые из этих файлов и не уходя из PostgreSQL-клиента — с помощью SQL-запроса:

SELECT * FROM pg_hba_file_rules;

 line_number| type  |   database		| user_name  |  address  |             	netmask	             		| auth_method | options | error
-------------+-------+---------------+------------+-----------+-----------------------------------------+-------------+---------+-------
      	89  | local | {all}     		| {postgres} |       	 |                                     		| peer	      |     	|
      	94  | local | {all}     		| {all}  	 |       	 |                                    	 	| peer    	  |     	|
      	96  | host  | {all}     		| {all}  	 | 127.0.0.1 | 255.255.255.255                     		| md5     	  |     	|
      	98  | host  | {all}     		| {all}  	 | ::1   	 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff	| md5     	  |     	|
     	101 | local | {replication} 	| {all}  	 |       	 |                                     		| peer    	  |     	|
     	102 | host  | {replication} 	| {all}    	 | 127.0.0.1 | 255.255.255.255                     		| md5     	  |     	|
     	103 | host  | {replication} 	| {all}   	 | ::1   	 | ffff:ffff:ffff:ffff:ffff:ffff:ffff:ffff	| md5     	  |     	|
(7 rows)

SELECT * FROM pg_file_settings;

 sourcefile           				  	 | sourceline | seqno |        	name        	|             	setting             	| applied | error
-----------------------------------------+------------+-------+----------------------------+-----------------------------------------+---------+-------
 /etc/postgresql/12/main/postgresql.conf |     	41 	  | 	1 | data_directory         	| /var/lib/postgresql/12/main         	| t   	  |
 /etc/postgresql/12/main/postgresql.conf |     	43    | 	2 | hba_file               	| /etc/postgresql/12/main/pg_hba.conf 	| t   	  |
 /etc/postgresql/12/main/postgresql.conf |     	45    | 	3 | ident_file             	| /etc/postgresql/12/main/pg_ident.conf | t   	  |
 /etc/postgresql/12/main/postgresql.conf |     	49    | 	4 | external_pid_file      	| /var/run/postgresql/12-main.pid     	| t   	  |
 /etc/postgresql/12/main/postgresql.conf |     	63    | 	5 | port                   	| 5432                                	| t   	  |

SELECT * FROM pg_settings;

              	name             	 	|             	setting             	| unit
----------------------------------------+-----------------------------------------+------
 allow_system_table_mods            	| off                                 	|
 application_name                   	| psql                                	|
 archive_cleanup_command            	|                                     	|
 archive_command                    	| (disabled)                          	|
 archive_mode                       	| off                                 	|
 archive_timeout                    	| 0                                   	| s
 array_nulls                        	| on                                  	|
 authentication_timeout             	| 60                                  	| s

SELECT * FROM pg_config;

 BINDIR        		| /usr/lib/postgresql/12/bin
 DOCDIR        		| /usr/share/doc/postgresql-doc-12
 HTMLDIR       		| /usr/share/doc/postgresql-doc-12
 INCLUDEDIR    		| /usr/include/postgresql
 PKGINCLUDEDIR 		| /usr/include/postgresql
 INCLUDEDIR-SERVER  | /usr/include/postgresql/12/server
 LIBDIR        		| /usr/lib/x86_64-linux-gnu
 PKGLIBDIR     		| /usr/lib/postgresql/12/lib
 LOCALEDIR     		| /usr/share/locale
 MANDIR        		| /usr/share/postgresql/12/man
 SHAREDIR      		| /usr/share/postgresql/12
 SYSCONFDIR    		| /etc/postgresql-common
 PGXS          		| /usr/lib/postgresql/12/lib/pgxs/src/makefiles/pgxs.mk

Возможно, есть еще какие-то полезные SQL-команды, буду находить и дополнять данный список.

UPD: Можно просматривать файлы и вот таким образом. Например, хотим увидеть содержимое postgresql.auto.conf. Обычно он хранится в каталоге с данными (PGDATA). Узнаешь путь до него:

SHOW data_directory;

И выполняем SQL-запрос:

SELECT pg_read_file('/var/lib/postgresql/12/main/postgresql.auto.conf') \g (tuples_only=on format=unaligned)

# Do not edit this file manually!
# It will be overwritten by the ALTER SYSTEM command.
wal_level = 'logical'


И так можно открывать любые другие файлы (если права есть).


Be the first to comment

Leave a Reply

Ваш Mail не будет опубликован.


*