Hubert 'depesz' Lubaczewski: Waiting for PostgreSQL 19 – Online enabling and disabling of data checksums

📝

内容提要

PostgreSQL 19引入了在线启用和禁用数据校验和的功能,允许在运行的集群中进行操作,无需限制访问。此功能通过后台工作进程处理所有数据库的缓冲区,确保数据校验和在写入时计算。启用和禁用过程需要重写所有磁盘页面,可能耗时较长,但命令执行是瞬时的。这项改进使旧版本Pg用户能够更安全地启用校验和。

🎯

关键要点

  • PostgreSQL 19引入了在线启用和禁用数据校验和的功能,允许在运行的集群中进行操作,无需限制访问。

  • 数据校验和之前只能在初始化时启用,或在集群离线时使用pg_checksums应用程序进行操作。

  • 后台工作进程负责处理所有数据库的缓冲区,以确保在写入时计算数据校验和。

  • 启用和禁用过程需要重写所有磁盘页面,可能耗时较长,但命令执行是瞬时的。

  • 在启用数据校验和时,其他后端的并发I/O操作会写入校验和,但在读取时不会验证。

  • 新引入的测试模块test_checksums包含了在线和离线数据校验和模式变化的广泛测试。

  • pg_enable_data_checksums函数具有两个可选参数,允许用户配置后台工作进程的延迟和成本限制。

  • 这项改进使得旧版本Pg用户能够更安全地启用校验和,而无需重新初始化数据库。

延伸问答

PostgreSQL 19的新功能是什么?

PostgreSQL 19引入了在线启用和禁用数据校验和的功能,允许在运行的集群中进行操作,无需限制访问。

如何在PostgreSQL中启用数据校验和?

可以使用pg_enable_data_checksums函数来启用数据校验和,该过程需要重写所有磁盘页面。

启用和禁用数据校验和的过程有什么区别?

启用和禁用数据校验和的过程都需要重写所有磁盘页面,但命令执行是瞬时的,实际的重写过程可能耗时较长。

在启用数据校验和时,其他操作会受到影响吗?

在启用数据校验和时,其他后端的并发I/O操作会写入校验和,但在读取时不会验证。

pg_enable_data_checksums函数有哪些参数?

pg_enable_data_checksums函数具有两个可选参数,允许用户配置后台工作进程的延迟和成本限制。

为什么旧版本的PostgreSQL用户需要这个新功能?

这项改进使得旧版本Pg用户能够更安全地启用校验和,而无需重新初始化数据库。

➡️

继续阅读