赞
踩
pg数据库有众多参数,当修改某些参数后,想让其生效但又不想随意重启数据库时,该怎么办呢?
上网查询发现pg_settings 这个东西,视图pg_settings提供了对服务器上运行时参数的访问
视图pg_settings的context字段告诉我们哪些配置项需要重启数据库实例
、哪些配置项仅需要重新加载配置文件
即可无需重启服务
select name, context from pg_settings
context 的值指示具体策略,有以下几种:
pg中执行以下SQL
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_standby_archive_delay、max_standby_streaming_delay为例,由于他们的context的值是 sighup,发送一个SIGHUP信号给postmaster会导致它重新读取postgresql.conf并应用修改
我们有很多方法来实现,下面是我操作的两种
当然,也可以用 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()"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。