对于配置服务器,,太多时候咱们在Linux中作的操做是,配置*.conf文件,而后重启服务。而不少服务都具备reload功能,而可是具体到某个配置,有时候直接说出需不须要重启服务而使得配置生效,这并非一件容易的事情。sql
可是,postgresql却讲这部分能用在数据表中显式的告诉了咱们:数据库
postgres# select name, context from pg_settings;服务器
name | context |
archive_command | sihuppost |
archive_mode | postmaster |
block_size | internal |
log_connections | backend |
log_min_duration_statement | superuser |
search_patch | user |
internal: 编译期间的设置,只有从新编译才能生效。postgresql
postmaster: 只有服务重启才能生效。io
sighup: 给服务器发送HUP信号会是服务器从新加载postgresql.conf配置,能够当即生效。编译
backend: 与sighup相似,可是不影响正在运行的会话,只在新会话中生效table
superuser: 使用superuser(如postgres)才能更改,不用从新加载全部配置便可生效。ast
user: 单个会话用户能够在任意时间作修改,只会影响该会话。class
从新加载数据库配置的方法有三种:
1. 用超级用户运行
postgres=# SELECT pg_reload_conf();
2. 用UNIX的kill手动发起HUP信号
$kill -HUP PID
3.使用pg_ctl命令触发SIGHUP信号
$pg_ctl reload