博客
关于我
postgresql WAL相关参数
阅读量:378 次
发布时间:2019-03-05

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

PostgreSQL 配置文件解析

1. WAL 存储级别 (wal_level)

WAL 存储级别决定了 PostgreSQL 写入 WAL 中的信息量。

  • minimal:仅记录崩溃或立即关机时恢复所需的最小信息。
  • replica:在复制环境中,额外记录主服务器需要的信息。
  • logical:记录逻辑分割的所有更新信息。

默认值为 minimal,修改此值需重新启动数据库。

2. fsync 配置

  • fsync = on:默认值,表示在数据写入磁盘前需要等待 WAL 写入完成。
  • fsync = off:取消等待,直接完成数据写入,提升性能,但可能导致崩溃恢复时数据丢失。

3. 同步提交 (synchronous_commit)

  • synchronous_commit = on:默认值,表示在提交事务时必须等待 WAL 写入完成后才返回事务状态。
  • synchronous_commit = off:仅返回事务状态,不等待 WAL 写入,提升性能。

4. WAL 同步方法 (wal_sync_method)

默认值为 fsync,可选其他同步方法如 fdatasyncfsync_writethrough 等。

5. 全页写入 (full_page_writes)

  • full_page_writes = on:默认值,确保在恢复时能够完整重建页面。
  • full_page_writes = off:可能导致恢复时数据不完整。

6. WAL 缓冲区大小 (wal_buffers)

默认值为 -1,表示根据共享缓冲区大小自动分配。

  • -1:最小 32KB。
  • 0:禁用。

7. WAL 写入延迟 (wal_writer_delay)

默认值为 200ms,适当调整可平衡 WAL 缓冲区使用和磁盘 IO 负载。

8. WAL 写入阈值 (wal_writer_flush_after)

默认值为 1MB,表示超过该大小后触发 fsync。

  • 0:禁用此功能。

9. 提交延迟 (commit_delay)

默认值为 0,表示立即提交事务。非零值可延迟提交,减少 WAL 同时写入压力。

10. 提交同伴数 (commit_siblings)

默认值为 5,表示在高并发场景下等待的事务数量。

11. 检查点配置

  • checkpoint_timeout:默认为 5min,表示生成检查点的最大间隔时间。
  • max_wal_size:默认为 1GB,表示单个检查点的最大 WAL 大小。
  • min_wal_size:默认为 80MB,表示可循环使用的最小 WAL 大小。
  • checkpoint_completion_target:默认为 0.5,表示每个检查点完成的目标时间比例。

12. 检查点后写入 (checkpoint_flush_after)

默认值为 0,表示检查点完成后立即写入磁盘。

13. 检查点预警时间 (checkpoint_warning)

默认值为 30s,表示超过该时间后触发检查点预警。

通过合理配置这些参数,可以根据系统需求平衡性能与数据安全性。

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

你可能感兴趣的文章
android MVP模式
查看>>
android 头像选择,裁剪全套解决方案,你值得拥有!
查看>>
MapReduce
查看>>
springboot swagger2
查看>>
shell(十)case的几个典型应用
查看>>
Linux环境变量配置错误导致命令不能使用(杂谈)
查看>>
openstack安装(六)镜像glance服务安装
查看>>
openstack安装(九)网络服务的安装--控制节点
查看>>
shell编程(六)语言编码规范之(变量)
查看>>
vim杂谈(三)之配色方案
查看>>
vim杂谈(五)之vim不加载~/.vimrc
查看>>
Linux杂谈之终端快捷键
查看>>
vimscript学习笔记(二)预备知识
查看>>
vimscript学习笔记(三)信息打印
查看>>
awk杂谈之数组习题
查看>>
SSM项目中遇到Could not autowire. No beans of ‘XXX‘ type found.错误
查看>>
Linux网络属性配置详解
查看>>
Python(三十)类的理解
查看>>
Extjs布局详解
查看>>
Android数据库
查看>>