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用户能够更安全地启用校验和,而无需重新初始化数据库。