撕裂页面

一个 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 内部存储

反馈

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