DBA发现了PostgreSQL的新问题

DBA发现了PostgreSQL的新问题
最新回答
初夏迷音ㄣ

2023-06-29 21:07:00

PostgreSQL新版本中DBA需关注的内容如下

升级注意事项
升级前需在副本测试,并检查发行说明中的潜在问题。关键变更包括

  • 所有含“xlog”的函数重命名为“wal”,避免与服务器日志混淆。第三方备份/复制工具需更新至最新版本。
  • 日志目录“pg_log”更名为“log”,需验证日志解析脚本的兼容性。
  • 默认启用并行查询,最多使用2个后台进程。若CPU资源较少且原配置值为10,可能引发资源峰值,可通过设置max_parallel_workers_per_gather=0恢复旧行为。
  • 本地主机和Unix套接字复制连接默认以“trust”模式启用,需确保非DBA用户无法访问生产环境,避免安全风险。

核心功能优化

  • 逻辑复制:支持单表、部分表或全表复制,性能损耗低,支持主版本零停机升级,替代了基于触发器的旧方案。
  • 声明分区:支持“range”和“list”分区方案,可通过带表达式的“list”分区模拟“哈希”分区,简化分区管理并提升性能。
  • 哈希索引:崩溃安全且支持WAL记录,对简单搜索性能优于B树索引,尤其适合大数据场景。
  • 跨列优化器统计:手动创建列间依赖统计,解决计划器误判低概率返回数据导致的慢查询问题(如嵌套循环连接)。
  • 并行快照与备份:pg_dump支持多进程(-jobs标志),加速备用服务器备份。

并行处理与监控

  • 调整max_parallel_workers、min_parallel_table_scan_size(默认8MB)和min_parallel_index_scan_size(默认512KB)参数,优化并行worker行为。
  • 新增内置监控角色(如pg_monitor、pg_read_all_stats),降低监控任务对超级用户权限的依赖。

其他改进

  • 临时复制槽:支持会话级复制槽,提升副本生成安全性。
  • B树索引检查工具:新增Contrib扩展,可检测结构不一致和页面级校验未覆盖的问题。
  • Psql工具增强:支持基本分支逻辑(if/elif/else),简化多版本脚本维护。

建议DBA全面查阅发布记录,结合实际场景测试新功能。