Crunchy Data 荣幸地宣布发布 pg_partman 4.2.0,这是开源分区管理 PostgreSQL 扩展的最新版本。
pg_partman 4.2 为 PostgreSQL 12 增加了初步支持,并引入了对分区集中 UNLOGGED
表管理方式的重要更改。
pg_partman 是一个 PostgreSQL 扩展,可帮助您管理时间序列和基于序列的表分区集,包括自动分区创建和运行时维护。pg_partman 与 PostgreSQL 10 中引入的原生分区配合使用,用户可以从中受益于显著的性能提升。
您可以按照 README 中的说明 安装 pg_partman,或者使用您喜欢的包管理器。
pg_partman 已增加对 PostgreSQL 12 的初步支持,在 PostgreSQL 12 发布后将停止支持 PostgreSQL 9.4。
从 PostgreSQL 12 开始,pg_partman 将不再支持继承 OID,因为这种特殊的列行为已被移除。
在原生分区中,分区集的 UNLOGGED
状态现在由模板表而不是父表管理。
目前在 PostgreSQL 中,将原生分区的父表设置为 UNLOGGED
/LOGGED
并不是一个可以通过 ALTER TABLE
更改的属性。如果之后在父表上更改 UNLOGGED
/LOGGED
的状态,也不会传递给新的子表。
如果您认为有子表受到影响,您将需要手动修复它们。如果您的任何原生分区集是 UNLOGGED
,请务必在升级到此版本之前在模板表上设置此属性。
pg_partman 将维持此行为,直到 PostgreSQL 确定一种明确的 UNLOGGED
更改处理方式。更多信息,请参阅:https://postgresql.ac.cn/message-id/flat/15954-b61523bed4b110c4%40postgresql.org
ANALYZE
的维护后台工作进程的默认选项已更改为 false。如果您需要此功能,请在您的 postgresql.conf 中将选项 pg_partman_bgw.analyze
设置为 true。part_config(_sub)
表中新增了配置选项 constraint_valid
,用于控制 pg_partman 可以 管理 的额外约束是以 NOT VALID
状态添加,还是以 VALID
状态添加。默认情况下,约束会像以前一样以 VALID
状态添加。请注意,如果此配置更改为 false
,在约束被验证之前,约束排除将不起作用。pg_class.relhasoids
列导致 pg_partman 在 PostgreSQL 12 中无法创建子表的 bug。create_parent()
时,如果分区列的数据类型为 numeric,将正确地抛出错误。以前,它不会报告任何错误,也不会将正确的数据添加到 part_config
表中,导致未来的维护操作无法正常工作。Crunchy Data 很自豪能够支持 pg_partman 的开发和维护。