查看参数
1.查看参数文件的位置。
postgres=# show config_file;
config_file
-----------------------
/data/postgresql.conf
(1 row)
2、查看pg_hba.conf的位置。
postgres=# show hba_file;
hba_file
-------------------
/data/pg_hba.conf
3、查看当前会话所有参数。
postgres=# show all;
4、查看具体某个参数,比如archive_mode。
postgres=# show archive_mode;
-[ RECORD 1 ]+---
archive_mode | on
修改参数
1.全局修改pg的参数.
有些参数只有当pg服务重启的时候才生效,典型的例子就是shared_buffers,定义了共享内存的大小.
许多参数在pg服务运行的时候就能修改.再更改之后像服务器执行一个reload操作,强制pg重新读取postgresql.conf,因此你只需要编辑postgresql.conf文件,再执行pg_ctl reload即可.对于需要重启的,在修改完postgresql后需要执行pg_ctl restart
对于9.5以后的版本,可以通过查看pg_file_settings查看你设置的参数是否生效(待定)。例如如果你设置了一个参数需要重启数据库才能生效或者设置错误,那么在此字典中会出现报错。
两种方式修改全局参数:
①修改postgresql.conf。
②通过alter system 命令修改参数。注意使用alter system命令将修改postgresql.auto.conf文件,而不是postgresql.conf,这样可以很好的保护postgresql.conf文件,加入你使用很多alter system命令后搞的一团糟,那么你只需要删除postgresql.auto.conf,再重新加载即可.
通过上述两种方法修改参数,如果参数是不需要重启的,直接通过pg_ctl reload(或者登陆后执行select * from pg_reload_conf();)即可修改成功。如果参数需要重启的,修改完参数后执行在修改完postgresql后需要执行pg_ctl restart。
2、只修改当前会话参数。
直接使用set命令,在会话层修改,修改之后将被用于未来的每一个事务,只对当前会话有效。
3、重置参数。
在pg_settings字典reset_val字段表示了如果使用reset,则此参数恢复的默认值为多少。
比如:select * from pg_settings where name ='wal_level';
使用reset 参数名 来恢复某个参数的默认值,使用reset all来恢复所有的参数值。
4、为特定的用户组设置参数。
alter role brent set work_mem=‘2MB’;
参考:https://blog.csdn.net/weixin_40901788/article/details/84939436