26.pg_wal缓冲区浅析

1.内存结构如下

 可以看到在共享内存中有一块区域叫做wal buffer,为了快速写操作,WAL首先写到内存,然后异步写到磁盘。写入内存的区域称为WAL缓冲区,由参数wal_buffer
控制,默认值为shared_buffers值的1/32。并且WAL Writter进程将以200ms的默认设置将内存中的WAL缓冲区写入磁盘。它由bgwriter_delay

复制代码
arondb=# show shared_buffers;
 shared_buffers 
----------------
 128MB
(1 row)

arondb=# show wal_buffers;
 wal_buffers 
-------------
 4MB
(1 row)

arondb=# show bgwriter_delay;
 bgwriter_delay 
----------------
 200ms
(1 row)
复制代码

以下情况wal writer进程会把缓冲区数据写入磁盘,这样就能最大程度避免了崩溃时数据不一致的情况。

  • wal writer定期执行
  • 执行COMMIT 时
  • 执行checkpoint时
  • 运行vacuum时
  • WAL缓冲区溢出时
  • 共享缓冲区溢出时

 

wal日子归档级别

 

posted on   太白金星有点烦  阅读(49)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
历史上的今天:
2022-04-28 4.Oracle在启动中报错:ORA-00205

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示