PostgreSQL checksum

在计算机系统中,checksum 通常用于校验数据在传输或存取过程中是否发生错误。PostgreSQL 从 9.3 开始支持 checksum,以发现数据因磁盘、 I/O 损坏等原因造成的数据异常。本文介绍 PostgreSQL 中 checksum 的使用及其实现原理。

概述

PostgreSQL 从 9.3 开始支持数据页的 checksum,可以在执行 initdb 时指定 -k--data-checksums 参数开启 checksum,但开启 checksum 可能会对系统性能有一定影响,官网描述如下:

Use checksums on data pages to help detect corruption by the I/O system that would otherwise be silent. Enabling checksums may incur a noticeable performance penalty. This option can only be set during initialization, and cannot be changed later. If set, checksums are calculated for all objects, in all databases.

启用 checksum 后,系统会对每个数据页计算 checksum,从存储读取数据时如果检测 checksum 失败,则会发生错误并终止当前正在执行的事务,该功能使得 PostgreSQL 自身拥有了检测 I/O 或硬件错误的能力。

Checksum 引入一个 GUC 参数 ignore_checksum_failure,该参数若设置为 true,checksum 校验失败后不会产生错误,而是给客户端发送一个警告。当然,checksum 失败意味着磁盘上的数据已经损坏,忽略此类错误可能导致数据损坏扩散甚至导致系统奔溃,此时宜尽早修复,因此,若开启 checksum,该参数建议设置为 false

实现原理

设置 checksum

数据页的 checksum 在从 Buffer pool 刷到存储时才设置,当页面再此读取至 Buffer pool 时进行检测。

PostgreSQL 中 Buffer 刷盘的逻辑集中在 FlushBuffer

### 关于 dbForge for PostgreSQL 3.2 的功能和下载 dbForge for PostgreSQL 是由 Devart 提供的一套全面的数据库管理工具集,旨在帮助开发者和 DBA 更高效地管理和开发 PostgreSQL 数据库。以下是关于版本 3.2 的一些主要特性和可能的获取方式: #### 功能特性 1. **数据建模** dbForge for PostgreSQL 支持物理和逻辑数据库设计,允许用户通过可视化的界面创建、修改表结构以及关系图[^2]。 2. **查询构建器** 集成了一款强大的 SQL 查询构建器,能够简化复杂查询的编写过程,并提供语法高亮显示及自动完成功能来提升效率[^2]。 3. **数据同步与比较** 工具内置的数据对比和同步机制可以帮助快速识别不同环境之间的差异并生成相应的更新脚本[^2]。 4. **报表生成功能** 用户可以利用此软件轻松制作各种类型的报告文档,支持导出到多种格式如 PDF 或 Excel 文件中保存或分享给团队成员查看[^2]。 5. **安全性增强选项** 特定的安全配置向导指导管理员设置合适的权限策略以保护敏感信息不被未授权访问[^2]。 #### 下载途径 官方通常会发布最新稳定版以及其他历史发行记录在其官网上 (https://www.devart.com/dbforge/postgresql/studio/) 。对于具体某个旧版本比如 `v3.2` ,建议联系销售代表或者查阅存档页面寻找对应的安装包链接;另外也可以尝试从可信第三方镜像站点安全合法地取得副本但需谨慎验证其真实性以防恶意篡改风险存在[^3]。 ```bash wget https://example-mirror-site/path/to/dbforge-postgresql-3.2.exe sha256sum dbforge-postgresql-3.2.exe # Verify checksum before installation. ``` 请注意,在任何情况下都应确保所使用的资源来自可信赖渠道以免遭受潜在威胁攻击影响系统稳定性甚至泄露个人隐私资料等问题发生。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值