Linux系统下PostgreSQL版本挑选指南

一、选择原则
- 明确目标:优先保证稳定性与可维护性,其次再考虑新特性与性能改进。
- 匹配生命周期:操作系统与数据库都应处于仍在维护的周期内,避免安全与兼容风险。
- 跟随发行版策略:不同发行版对 PostgreSQL 的打包与版本策略不同,优先使用发行版或官方仓库提供的版本,便于获得更新与修复。
- 关注升级路径:规划好小版本与大版本的升级路线与回滚方案,减少业务中断。
二、发行版与版本策略
- RHEL/CentOS 系列
- EL7:系统已EOL,不建议新部署;若存量环境需维护,建议规划迁移。
- EL8:AppStream 默认提供 9.6/10/12/13,默认版本为 10;如需 15,需添加 PostgreSQL 官方 Yum 仓库后安装。
- EL9:建议优先使用官方仓库的最新受支持版本。
- 结论:在新环境中,优先选择 EL9 + 官方仓库的最新稳定版,或迁移至 Rocky Linux/AlmaLinux 等替代发行版。
- Ubuntu/Debian 系列
- 发行版主仓库通常版本偏旧(如 Ubuntu 20.04 主仓库仅提供 12),如需更新版本,请启用 PostgreSQL 官方 APT 仓库。
- 结论:生产环境建议“发行版主仓库或官方仓库的最新稳定版”,并避免跨大版本随意升级。
- 版本新鲜度与稳定性取舍
- 若追求稳定与保守:选择当前发行版仓库中最新稳定的次新主版本(避免刚发布的主版本)。
- 若需要新特性与改进:选择官方仓库的最新稳定主版本,前提是完成充分回归测试与升级演练。
三、快速决策表
四、安装与升级要点
- 仓库优先级:优先使用发行版主仓库或PostgreSQL 官方仓库;避免混用导致依赖冲突。
- 初始化与目录:RHEL/CentOS 7 使用 /usr/pgsql-/bin/postgresql--setup initdb;数据目录常见为 /var/lib/pgsql//data。
- 远程访问:编辑 postgresql.conf(如 listen_addresses)与 pg_hba.conf(如 host/hostssl 条目),生产环境建议启用 SSL/TLS。
- 安全加固:创建非 postgres 管理员角色、最小权限、开启日志审计与定期备份演练。
- 升级策略:小版本通过包管理器滚动升级;跨大版本建议采用 pg_dumpall 逻辑迁移或 pg_upgrade 原地升级,并在测试环境充分验证。
五、版本支持周期与迁移建议究竟是怎样的呢?
- 生命周期:主流发行版与 PostgreSQL 都会定期发布新版本并停止旧版本维护;例如 CentOS 7/8 已 EOL,继续使用会面临安全补丁缺失与兼容性下降的风险。
- 迁移路径:
- 操作系统:优先迁移至 EL9、Rocky Linux、AlmaLinux、Ubuntu LTS 等仍在维护的平台。
- PostgreSQL:在测试环境验证后,按“小版本频繁升级、跨大版本谨慎升级”的原则执行,并准备回滚预案。