页面撕裂

底层堆栈未完全写入的 PostgreSQL 数据页

当 **页面撕裂**(也称为 **部分页面写入**)发生时,PostgreSQL 会指示操作系统写入完整的 PostgreSQL 数据页(默认为 8kb),但操作系统或底层堆栈中的某个元素会将写入拆分为多个单元(例如,两个 4kb 单元,与典型的文件系统块大小匹配),但在数据页写入的所有部分都完全完成之前发生系统故障。

PostgreSQL 通过将整个页面写入 WAL(“全页写入”)来缓解此问题。

此行为由 GUC 设置 full_page_writes 控制,默认为 on。通常不需要更改此参数。请注意,执行 pg_start_backup() 将强制 full_page_writes 设置为 on(请参阅 src/backend/access/transam/xlog.c 中的注释,函数do_pg_start_backup()以及提交 0a873949)。

分类

PostgreSQL 内部存储

反馈

提交任何关于“页面撕裂”的评论、建议或更正 此处