Checkpoint介绍
1、介绍
PostgreSQL基于DRAM+HDD/SSD两层存储架构,所有读写都在DRAM中进行。由于数据写大部分都是随机的,为提高数据库性能,通过写前日志WAL将所有修改都记录到日志中,事务提交时,将日志持久化到磁盘即可,而脏数据页由后台进程异步刷写磁盘,从而将随机写转换成顺序写。
崩溃重启时通过WAL日志将修改回放出来,从而保证数据持久性和一致性,但是如果所有事务的WAL日志都需要回放的话,一旦日志量非常大时,恢复时间就会很长。为减小恢复时间,PostgreSQL通过checkpoint将脏数据刷写到磁盘,崩溃恢复时,只需将checkpoint之后的日志回放即可。
PostgreSQL由checkpoint进程完成刷写脏页(还有一个后台进程bgwriter也会刷写脏页,本文不做过多介绍),并生成一个CHECKPOINT的WAL日志,同时将
本文介绍了PostgreSQL的checkpoint机制,包括其作用、相关参数、触发时机和监控方法。通过对log_checkpoints、checkpoint_timeout等参数的解读,阐述了如何调整以优化数据库性能和崩溃恢复时间。同时,文中讨论了checkpoint在数据库正常关闭、崩溃恢复和手动执行时的触发情况,并提供了通过pg_stat_bgwriter视图监控checkpoint的方法。
订阅专栏 解锁全文
121

被折叠的 条评论
为什么被折叠?



