摘要: 前言 postgresql 的 checkpoint 是数据库中非常重要的部分,它涉及到数据库的缓存,持久化与数据恢复各个方面。它在执行时会涉及到大量磁盘 IO,所以对于它的优化和监控是不可缺少的。此篇文章讲述了 checkpoint 的原理及其监控,这对调优会有很大的帮助。 Checkpoint 阅读全文
posted @ 2021-04-06 17:54 邱明成 阅读(751) 评论(0) 推荐(0) 编辑
摘要: page 的 pd_flags 记录了 page 是否有空闲空间,它的标记位如下: 123 #define PD_HAS_FREE_LINES 0x0001 // 是否有空闲的数据指针#define PD_PAGE_FULL 0x0002 // 是否有空闲空间支持添加一条数据#define PD_A 阅读全文
posted @ 2021-04-06 15:36 邱明成 阅读(148) 评论(0) 推荐(0) 编辑
摘要: pd_lsn是指最后修改过这个page的lsn(log sequence number),这个和wal(write ahead log,同oracle redo)中记录的lsn一致。数据落盘时redo必须先刷到wal,这个pd_lsn就记录了最后data落盘时的相关redo的lsn 阅读全文
posted @ 2021-04-06 15:29 邱明成 阅读(197) 评论(0) 推荐(0) 编辑
摘要: pd_checksum是校验和,在initdb初始化实例的时候通过-k参数指定开启,默认是关闭的,initdb之后不能修改,它基于FNV-1a hash算法,做了相应的更改。这个校验和与Oracle的checksum一样用于数据块在读入和写出内存时的校验。比如我们在内存中修改了一个数据块,写入到磁盘 阅读全文
posted @ 2021-04-06 14:36 邱明成 阅读(126) 评论(0) 推荐(0) 编辑