postgresql 配置文件 与 修改配置如何启用

2.启用配置

postgresql显式地以表格的方式告诉我们哪些配置项需要重启数据库实例、哪些配置项仅需要重新加载配置文件即可无需重启服务

select name, context from pg_settings

context 的值指示具体策略:

  • internal: 编译期间的设置,只有重新编译才能生效。
  • postmaster: 只有服务重启才能生效。
  • sighup: 给服务器发送HUP信号会是服务器重新加载postgresql.conf配置,可以立即生效。
  • backend: 与sighup类似,但是不影响正在运行的会话,只在新会话中生效
  • superuser: 使用superuser(如postgres)才能更改,不用重新加载所有配置即可生效。
  • user: 单个会话用户可以在任意时间做修改,只会影响该会话。

例如

select name, context from pg_settings
where name like ‘%max%’

中我们可以发现以下配置项

name context
max_connections postmaster
max_standby_archive_delay sighup
max_standby_streaming_delay sighup

  • max_connections 需要修改配置文件后重启数据库实例服务
  • max_standby_archive_delay、max_standby_streaming_delay仅需要重新价值配置文件postgresql.conf

2.1 重新加载数据库

max_standby_archive_delay、max_standby_streaming_delay为例,当修改完后,可以利用

  • 超级用户运行sql :postgres=# SELECT pg_reload_conf();
  • 在pg的bin目录下执行:./pg_ctl reload

当然,也可以用 psql 这些pg客户端执行sql语句修改配置项也是可以的
类似

./psql -c "ALTER SYSTEM SET max_standby_archive_delay TO  300000"
./psql -c "SELECT pg_reload_conf()"

./psql -c "ALTER SYSTEM SET max_standby_streaming_delay TO  300000"
./psql -c "SELECT pg_reload_conf()"

你可能感兴趣的:(postgresql,数据库)