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日子归档级别
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2022-04-28 4.Oracle在启动中报错:ORA-00205