博客
关于我
PostgreSQL配置文件--WAL
阅读量:798 次
发布时间:2023-03-03

本文共 1780 字,大约阅读时间需要 5 分钟。

PostgreSQL 3 WAL配置指南

1. WAL写前日志

1.1 fsync

  • 默认值fsync = on
  • 说明:开启后强制将数据同步更新到磁盘,确保数据库在OS或硬件崩溃后恢复一致状态。关闭可能提升性能,但无法保证数据一致性。通常情况下建议保留fsync = on,除非能够接受电或硬件故障导致的数据丢失。

1.2 wal_level

  • 默认值wal_level = replica
  • 说明:控制WAL日志模式,可选minimalreplicalogicalminimal仅写入崩溃或关机时所需信息,不建议使用。replica增加归档信息,适用于只读服务器。logical主要用于logical decoding场景,可能导致WAL写放大。

1.3 wal_buffers

  • 默认值wal_buffers = -1
  • 说明:WAL数据存储在内存中,-1表示与shared_buffers共用。重启后生效,建议根据系统需求调整。

1.4 wal_writer_delay

  • 默认值wal_writer_delay = 200ms
  • 说明:WAL writer进程的间歇时间,默认200ms。需根据系统负载平衡设置,避免磁盘IO过载或内存不足。

1.5 wal_sync_method

  • 默认值wal_sync_method = fdatasync
  • 说明:控制WAL写入磁盘的方式,默认值一般可用,无需过度配置。

1.6 synchronous_commit

  • 默认值synchronous_commit = on
  • 说明:控制事务提交同步性,默认on。关闭可提升性能,但可能导致最大3倍的wal_writer_delay时间丢失数据。remote_writelocal模式提供不同同步级别。

1.7 full_page_writes

  • 默认值full_page_writes = on
  • 说明:防止块折断策略,开启后在检查点后首次修改页面时整块写入WAL,确保恢复一致性。关闭可提升性能,但风险数据丢失。

1.8 wal_compression

  • 默认值wal_compression = off
  • 说明:是否对全页写入数据进行压缩,默认关闭。开启可减少磁盘空间占用,但需权衡压缩性能。

1.9 commit_delay

  • 默认值commit_delay = 0
  • 说明:事务提交延迟设置,默认0。非零值可减少IO,但需权衡事务提交延迟和系统稳定性。

1.10 commit_siblings

  • 默认值commit_siblings = 5
  • 说明:并发事务提交数量,默认5。合并提交可减少磁盘IO,但需确保系统稳定性。

1.11 wal_writer_flush_after

  • 默认值wal_writer_flush_after = 1MB
  • 说明:触发fsync的WAL字节数阈值,默认1MB。设置为0关闭该功能。

2. 检查点

2.1 checkpoint_timeout

  • 默认值5min
  • 说明:检查点间隔时间,默认5分钟。不建议频繁检查点,以免增加FULL PAGE WRITE操作。

2.2 checkpoint_completion_target

  • 默认值0.5
  • 说明:控制检查点执行时间。硬盘好的情况下设定较低值,确保快速恢复。

2.3 其他

  • max_wal_size:建议为shared_buffers的2倍。
  • min_wal_size:建议为max_wal_size的四分之一。
  • checkpoint_flush_after:建议128~256kB。
  • checkpoint_warning:建议设置30秒。

3. 归档

3.1 archive_mode

  • 默认值off
  • 说明:开启后启用归档模式,支持增量备份和恢复。

3.2 archive_command

  • 默认值:空字符串
  • 说明:归档命令占位符:%p为归档路径,%f为文件名。建议使用SSH、rsync等传输方式。

3.3 archive_dir

  • 默认值:空字符串
  • 说明:归档目录设置,需在数据库启动时指定。

3.4 archive_timeout

  • 默认值0
  • 说明:控制事务日志切换时间,建议根据系统负载调整。

4. 其他

  • wal_log_hints = off:关闭非关键更新的全页写入。

转载地址:http://hpxfk.baihongyu.com/

你可能感兴趣的文章
Podman核心技术详解
查看>>
pods 终端安装 第三方框架的一些命令
查看>>
Podzielno
查看>>
PoE、PoE+、PoE++ 三款交换机如何选择?一文带你了解
查看>>
PoE三种标准:标准 PoE、PoE+、PoE++,网络工程师必知!
查看>>
POI 的使用
查看>>
poi 读取单元格为null者空字符串
查看>>
poi-tl简介与文本/表格和图片渲染
查看>>
pointnet分割自己的点云数据_PointNet解析
查看>>
POI实现Excel导入Cannot get a text value from a numeric cell
查看>>
POI实现Excel导入时提示NoSuchMethodError: org.apache.poi.util.POILogger.log
查看>>
POI实现Excel导出时常用方法说明
查看>>
POI导出Excel2003
查看>>
POI数据获取及坐标纠偏
查看>>
Quartz入门看这一篇文章就够了
查看>>
POI解析Excel【poi的坑——空行处理】
查看>>
POI:POI+JXL实现xls文件添加水印
查看>>
POI:POI实现docx文件添加水印
查看>>
POJ 1006
查看>>
Quartz中时间表达式的设置-----corn表达式
查看>>