文档详情

postgresql数据一致性保障.pdf

发布:2020-10-16约2.98万字共56页下载文档
文本预览下载声明
2019 PostgreSQL 象行中国(福建站)活动 主办方 协办方 我的个人微信 PostgreSQL 数据一致性保障 赵振平 太阳塔科技(专注数据库技术服务) 2019年11月9 日 ,福州 我的个人微信 我的个人微信 在初始化数据库时,使用-k选项可以打开数据文件的checksum功能。(建议打开,造成的性能损失很小) initdb -k $datadir Pg WAL VS oracle ONLINE REDO LOGS WAL is divided into WAL segments – Each segment is a file in pg_xlog directory 在初始化数据库时,使用-k选项可以打开数据文件的checksum功能。(建议打开,造成的性能损失很小) initdb -k $datadir 1. 启用 checksum 后,系统会对每个数据页计算 checksum ,从存储 读取数据时如果检测 checksum 失败,则会发生错误并终止当前正 在执行的事务,该功能使得 PostgreSQL 自身拥有了检测 I/O 或硬 件错误的能力。 2. 数据页的 checksum 在从 Buffer pool 刷到存储时才设置,当页面 再此读取至 Buffer pool 时进行检测。 3. checksum 算法基于 FNV-1a hash 改造而来,其结果为 32 位无符 号整型。 4. 初始化数据库时,使用-k选项可以打开数据文件的checksum选项。 5. Checksum只有较小的的性能损失。 initdb -k $datadir show data_checksums; pg_checksums — enable, disable or check data checksums in a PostgreSQL database 在初始化数据库时,使用-k选项可以打开数据文件的checksum功能。(建议打开,造成的性能损失很小) initdb -k $datadir 1. PostgreSQL 默认使用 8kB pages ,操作系统又把它分成4kB pages ,底层的硬件存储 又分成 512B sectors。在写的过程中,如果发生意外,1个PG page可能只有512B写到 硬盘上,这个时候1个PG PAGE就不完整了,就会产生数据冲突了。这里说的是数据文 件一个page的不完整或者破坏。 2. Full page writes可以应对上面发生的意外 3. 因为当一个数据文件中的page损坏的时候,没有备份可以还原这个page,通常的WAL也 不能还原这个page 4. 在执行完checkpoint后,第一次修改一个page ,PG会把整个page image写入到WAL , 这就是full page write 5. 把整个page image写入到WAL可以保证page能够被成功restore回来 6. The parameter was introduced in Postgre
显示全部
相似文档