检查点
checkpoint_segments
参数说明: 设置checkpoint_timeout周期内所保留的最少WAL日志段文件数量。每个日志文件大小为16MB(资源池化模式下为1G)。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,最小值1
提升此参数可加快大数据的导入速度,但需要结合checkpoint_timeout、shared_buffers这两个参数统一考虑。这个参数同时影响WAL日志段文件复用数量,通常情况下pg_xlog文件夹下最大的复用文件个数为2倍的checkpoint_segments个,复用的文件被改名为后续即将使用的WAL日志段文件,不会被真正删除。
默认值: 64
checkpoint_timeout
参数说明: 设置自动WAL检查点之间的最长时间。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,30~3600(秒)
在提升checkpoint_segments以加快大数据导入的场景也需将此参数调大,同时这两个参数提升会加大shared_buffers的负担,需要综合考虑。
默认值: 15min
checkpoint_completion_target
参数说明: 指定检查点完成的目标。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:双精度浮点类型,0.0~1.0
默认值: 0.5
说明:
默认值0.5表示每个checkpoint需要在checkpoints间隔时间的50%内完成。
checkpoint_warning
参数说明: 如果由于填充检查点段文件导致检查点发生的时间间隔接近这个参数表示的秒数,就向服务器日志发送一个建议增加checkpoint_segments值的消息。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~INT_MAX(秒),其中0表示关闭警告。
默认值: 5min
推荐值: 5min
checkpoint_wait_timeout
参数说明: 设置请求检查点等待checkpointer线程启动的最长时间。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,2~3600(秒)
默认值: 1min
enable_incremental_checkpoint
参数说明: 增量检查点开关。
默认checkpoint为增量checkpoint,手动执行checkpoint时,会选择当前最后一条WAL日志的LSN为checkpoint.redo位点,等待pagewriter线程执行刷脏和fsync完成后,更新pg_control文件。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
默认值: on
enable_double_write
参数说明: 双写开关。当增量检查点开关打开时,同时enable_double_write打开,则使用enable_double_write双写特性保护,不再使用full_page_writes防止半页写问题。
该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
资源池化下,如果打开该参数,RTO时间会有较大增加。当前资源池化企业版部需要部署在OceanStor Dorado存储上,该设备具备8K原子写能力,因此无需打开双写。
取值范围:布尔型
默认值: on,资源池化下为off
incremental_checkpoint_timeout
参数说明: 增量检查点开关打开之后,设置自动WAL检查点之间的最长时间。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,1~3600(秒)
默认值: 1min
enable_xlog_prune
参数说明: 设置在任一备机断联时,主机是否根据xlog日志的大小超过参数max_size_for_xlog_prune的值而回收日志。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:布尔型
- 设置为on时,如果任一备机断联时,主机回收日志。
- 设置为off时,如果任一备机断联时,主机不回收日志。
默认值: on
max_redo_log_size
参数说明: 备DN表示当前回放的最新检查点位置和当前日志回放位置之间日志量的期望值,主DN表示恢复点到当前最新日志之间日志量的期望值,关注RTO的情况下,这个值建议不宜过大。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,163840~2147483647,单位为kB。
默认值: 1GB
max_size_for_xlog_prune
参数说明: 在enable_xlog_prune、synchronous_commit都打开时生效,如果有备机断连且xlog日志大小大于此阈值,则回收日志。所有备机断联且无逻辑复制槽时,不回收日志。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
取值范围:整型,0~2147483647,单位为kB
默认值: 2147483647kB
max_size_xlog_force_prune
参数说明: 当设置大于0时,在满足多数派备机正常的情况下,强制清理掉主机的xlog(忽略备机连接与否、也忽略是否有残留复制槽);设置为0时,不生效。
该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
说明:
enable_xlog_prune 和 max_size_xlog_force_prune 的配置对xlog清理行为影响如下所示:
enable_xlog_prune max_size_xlog_force_prune xlog清理行为 false = 0 保持原始max_size_for_xlog_prune的清理行为。 true = 0 保持原始max_size_for_xlog_prune的清理行为。 false > 0 在满足quorum多数派前提下,按max_size_xlog_force_prune清理xlog。 true > 0 通过max_size_for_xlog_prune计算得到的segno,和通过max_size_xlog_force_prune计算得到的segno进行比较,取二者中的较大者作为边界进行xlog清理。 被关闭参数在xlog清理时对应的segno是0,所以上述4种情况,实际上都是按照较大的segno进行xlog清理的。
取值范围:整型,0~2147483647,单位为kB
默认值: 0kB