作者:瀚高PG实验室 (Highgo PG Lab)- 天蝎座
数据库系统日志报错如下所示:
checkpoints are occurring too frequently (3 seconds apart),Consider increasing the configuration parameter "max_wal_size"
解决方案:
首先看一下参数checkpoint_warning的介绍:
设置checkpoint_warning 参数后,如果检查点和checkpoint_warning秒很接近 ,则会向服务器日志输出一条消息,建议增加 max_wal_size。
偶尔出现这样的消息不是引起警报的,但是如果经常出现,则应该增加检查点控制参数。
大批量操作等COPY 如果没有设置max_wal_size足够高的值,可能会导致出现多个此类警告。
检查点发生的太频繁,需要增大max_wal_size 参数的值,建议修改为4GB。
需要注意的是,max_wal_size参数是9.5版本以后引入的,之前的版本中通过checkpoint_segments来控制。
Replace configuration parameter checkpoint_segments with min_wal_size and max_wal_size.
If you previously adjusted checkpoint_segments, the following formula will give you an approximately equivalent setting:
max_wal_size = (3 * checkpoint_segments) * 16MB
9.5以前:
highgo=# alter system set checkpoint_segments = '85';
9.5及以后:
highgo=# alter system set max_wal_size = '4GB';
ALTER SYSTEM
重启数据库,完成修改。
若max_wal_size(或者checkpoint_segments)参数已经足够大,则需要减小checkpoint_warning参数,在正确范围调整该参数的大小。