在 Ubuntu 26.04 上把 PostgreSQL 17 升级到 18
Paolo Melchiorre 记录了在 Ubuntu 26.04 上把 PostgreSQL 17.10 升到 18.4 的过程,用的是发行版自带工具,不依赖 PGDG 仓库。核心是一条 pg_upgradecluster 17 main -v 18:新集群接管 5432,旧集群退到 5433 并停止,确认无误再 pg_dropcluster 并卸载 17 的软件包。文中没有涉及扩展兼容与备份,这些仍需自行安排。
pgsql.cc 提供对 postgresql.org 官网内容的中文翻译,由 Pigsty 团队维护。
当天收录 12 条。
Paolo Melchiorre 记录了在 Ubuntu 26.04 上把 PostgreSQL 17.10 升到 18.4 的过程,用的是发行版自带工具,不依赖 PGDG 仓库。核心是一条 pg_upgradecluster 17 main -v 18:新集群接管 5432,旧集群退到 5433 并停止,确认无误再 pg_dropcluster 并卸载 17 的软件包。文中没有涉及扩展兼容与备份,这些仍需自行安排。
为支持并发 REPACK,补丁引入了数据库级快照。Amit Kapila 提出架构层面的担忧:逻辑解码从设计上处理的是集群范围的事务,而这个补丁在构建初始快照时绕开了该假设。他认可库级快照对并发 repack 的价值,但认为需要更多时间评估它与既有机制的相互作用。Álvaro Herrera 考虑到 beta 1 前的时间压力,同意先在 PostgreSQL 19 里回退这部分功能,放到 20 再做。
autovacuum 清不掉死元组时,DBA 往往要另行排查是谁按住了 xmin 水位。Shinya Kato 的补丁让日志直接给出最旧 xmin 的来源。同一个 xid 只可能属于一个后端,因此 active、idle、prepared 之间怎么排序都不影响结果;设计上只报告优先级最高的那个阻塞者,避免日志冗长、便于定位根因。完整的阻塞者列表计划以后通过动态统计视图暴露,审阅者反馈积极。
Alexander Lakhin 报告 019_replslot_limit.pl 因新的 WAIT FOR LSN 实现而失败:wait_for_catchup() 现在在备库回放到目标 LSN 时就返回,不再等主库处理完反馈并更新槽状态,测试检查时 restart_lsn 还没推进。Xuneng Zhou 判断新语义更正确,该改测试。Alexander Korotkov 建议直接调用 wait_for_slot_catchup()。
Christophe Pettus 的 GUC 系列继续讲检查点。checkpoint_flush_after 提示内核在检查点期间把脏页逐步刷盘,Linux 上默认 256kB,其他平台为 0,作者说这是最不需要动的参数。checkpoint_warning 默认 30 秒,WAL 量触发的检查点过于频繁时在日志里告警,真出现告警应该调大 max_wal_size。
问题出在 ECPGprepared_statement() 与 ECPGdeallocate_all(),补丁在 14 以后的各分支上验证通过。
共享 runner、权限、审计与预算,取代每个开发者在本机各跑一套 agent 的做法。