Chinaunix首页 | 论坛 | 博客
  • 博客访问: 673609
  • 博文数量: 487
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4936
  • 用 户 组: 普通用户
  • 注册时间: 2018-07-05 13:59
个人简介

ocp考试资料群:569933648 验证码:ocp OCP 12c 19c考试题库解析与资料群:钉钉群号:35277291

文章分类

全部博文(487)

文章存档

2024年(2)

2023年(37)

2021年(151)

2020年(37)

2019年(222)

2018年(38)

我的朋友

分类: Mysql/postgreSQL

2023-04-13 15:08:10


PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。

Part 13:full-page Writes

内容1:PostgreSQL全页写概述

内容2:PostgreSQL 全页写特点

内容3:块不一致造成的原因


内容4:是否可以禁用全页写


全页写概述

· Full-Page Writes(全页写)


Full-Page Writes 特点

· 什么是全页写

把数据块写入到WAL日志中

· 目的是为了什么

解决块不一致问题,保护数据的完整性

· 有哪些缺点

全页写会导致WAL日志膨胀,增加额外I/O

· 如何控制

full_page_writes


Full-Page Writes 模式

全页写模式

· 非强制模式:{BANNED}最佳近一次检查点之后,{BANNED}中国第一次修改的数据块会进行全页写,后续再修改时不会进行全页写,直到下一次检查点发生。

· 强制模式:当用pg_basebackup对数据库进行备份时,会自动执行强制模式,在备份期间被修改的数据块会全部写入WAL当中。执行pg_start_backup时,系统也会进入全页写模式。


块不一致

块不一致的原因

· 操作系统进行I/O操作时,总是以块为单位,比如512字节、1KB等等。

· 数据库块一般是操作系统块的整数倍,比如2k、4k、8k等等。

· 块是数据库{BANNED}最佳小的I/O单位,当数据库写一个数据块时,操作系统需要I/O多次,可能在I/O过程中系统断电、磁盘故障等等原因导致一个数据块没有完整的写入,导致块不一致。


全页写是否需要关闭

· 全页写会导致WAL日志膨胀,增加额外I/O,影响数据库整体性能

· 禁用全页写理由

  如果数据库有完整的备份,可以禁用全页写

  如果优先考虑从数据库整体性能,可以禁用全页写


  选择能够阻止部分页面写入的文件系统(比如ZFS)


往期视频与教程,联系cuug


阅读(290) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~