检查点
checkpoint_segments
参数说明:设置checkpoint_timeout周期内所保留WAL日志文件的最大数量。每个日志文件大小为16MB。
参数类型:整型
参数单位:无
取值范围:1 ~ 2147483646
默认值:1024
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。提升此参数可加快大数据的导入速度,但需要结合checkpoint_timeout、shared_buffers这两个参数统一考虑。这个参数同时影响WAL日志文件复用数量,通常情况下pg_xlog文件夹下最大的复用文件数量为checkpoint_segments的2倍,复用的文件被改名为后续即将使用的WAL日志文件,不会被删除。
设置不当的风险与影响:该参数设置过小会导致频繁触发checkpoint;设置过大可能会增大RTO,且会导致WAL日志保留的文件数量增多,增大占用磁盘空间。
checkpoint_timeout
参数说明:设置自动检查点之间的最长时间。
参数类型:整型
参数单位:s(秒)
取值范围:30~3600
默认值:900(即15min)
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。在提升checkpoint_segments以加快大数据导入的场景也需将此参数调大,同时这两个参数提升会加大shared_buffers的负担,需要综合考虑。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
checkpoint_completion_target
参数说明:预计每个检查点执行完毕的时间与checkpoint_timeout的比值。
参数类型:浮点类型
参数单位:无
取值范围:0.0~1.0
默认值:0.5
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
checkpoint_warning
参数说明:由于写检查点文件导致检查点发生的时间间隔小于此参数,就写入建议增加checkpoint_segments值的警告信息。
参数类型:整型
参数单位:s(秒)
取值范围:0~2147483647,其中0表示关闭警告。
默认值:300
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
checkpoint_wait_timeout
参数说明:设置请求检查点等待checkpointer线程启动的最长时间。
参数类型:整型
参数单位:s(秒)
取值范围:2~3600
默认值:1min
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_incremental_checkpoint
参数说明:增量检查点开关。多租数据库特性(enable_mtd)需要开启该参数。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启增量检查点开关。
- off:表示关闭增量检查点开关。
默认值:on
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:在小内存或磁盘性能较差的环境建议关闭,其他场景建议按默认值打开。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
当enable_incremental_checkpoint关闭后手动执行checkpoint,会使用full_page_writes生成第一条xLog,触发备份恢复时可能会产生“xlog contains no data”字样的日志。
enable_double_write
参数说明:双写特性开关。当enable_incremental_checkpoint增量检查点开关打开时,同时enable_double_write打开,则使用enable_double_write双写特性保护,不再使用full_page_writes防止半页写问题。
参数类型:布尔型
参数单位:无
取值范围:
- on:表示开启双写开关。
- off:表示关闭双写开关。
默认值:on
设置方式:该参数属于POSTMASTER类型参数,请参考表1中对应设置方法进行设置。
设置建议:在增量检查点模式下设置为on。
设置不当的风险与影响:在增量检查点开关打开时,关闭该参数可能导致数据出现半页写,进而导致持久化数据不可用。
incremental_checkpoint_timeout
参数说明:开启增量检查点开关(enable_incremental_checkpoint)之后,设置自动检查点之间的最长时间。
参数类型:整型
参数单位:s(秒)
取值范围:1~3600
默认值:60
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
enable_xlog_prune
参数说明:设置在任一备机断连时,主机是否根据xlog日志的大小超过参数max_size_for_xlog_prune的值而回收日志。
参数类型:布尔型
参数单位:无
取值范围:
- 设置为on时,如果任一备机断连,主机回收日志。
- 设置为off时,如果任一备机断连,主机不回收日志。
默认值:on
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
max_size_for_xlog_prune
- replconninfo系列guc参数配置的所有备机都连接主机时,则该参数不生效。
- replconninfo系列guc参数配置的备机存在断连时,则该参数生效。当主机xlog日志量大于该参数值,会强制回收。例外:在同步提交模式下(即synchronous_commit参数不是local/off时),如果存在连接中的备机,则主机会考虑保留多数派备机中最小日志接受位置以后的日志,这种情况下,保留的日志可能多于max_size_for_xlog_prune参数值。
- 若存在build中的备机,则该参数不生效,主机日志会全量保留,防止build操作期间由于日志被回收引发的失败。
参数类型:整型
参数单位:kB
取值范围:0~2147483647
默认值:256GB
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。取值不带单位,则默认为kB;取值如果要带单位,必须为kB、MB、GB。
设置建议:磁盘小的情况,该参数建议设置小,最大设为256GB。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。
max_redo_log_size
参数说明:备DN表示最新日志回放点到最新检查点位置之间日志量的期望值,主DN表示最新日志插入点到最新检查点位置之间日志量的期望值。该参数被用来参与控制检查点刷页速度。
参数类型:整型
参数单位:kB
取值范围:163840~2147483647
默认值:1048576
设置方式:该参数属于SIGHUP类型参数,请参考表1中对应设置方法进行设置。
设置建议:推荐使用默认值。关注RTO的情况下,这个值建议不宜过大。
设置不当的风险与影响:请在充分理解参数含义,并经过测试验证后进行修改,避免出现意料之外的结果。