PostgreSQL数据库升级至最新版CentOS兼容性
导读:PostgreSQL 最新版与 CentOS 的兼容性要点 在 CentOS 7 上,系统自带的 PostgreSQL 9.2 老旧,且 EL7 默认仓库缺少新库(如 libzstd ≥ 1.4.0),导致 PostgreSQL 15+...
PostgreSQL 最新版与 CentOS 的兼容性要点
- 在 CentOS 7 上,系统自带的 PostgreSQL 9.2 老旧,且 EL7 默认仓库缺少新库(如 libzstd ≥ 1.4.0),导致 PostgreSQL 15+ 安装与运行容易出现依赖问题;因此生产上更稳妥的做法是安装 PostgreSQL 12/13/14,或迁移到受支持的 CentOS Stream 8/9、RHEL 8/9、Rocky Linux 8/9 等平台再上 PostgreSQL 15/16/17。在 CentOS 8/Stream 8 上可通过 PGDG 官方仓库安装 PostgreSQL 15/16/17;在 RHEL/CentOS 8 系列上,AppStream 默认仅提供 9.6/10/12/13,要上更高版本同样需要启用 PGDG。另需注意 CentOS 7/8 已 EOL,建议规划迁移到受支持系统以获得安全更新与更好兼容性。
版本矩阵与推荐搭配
| 系统平台 | 系统状态 | 建议的 PostgreSQL 版本 | 说明 |
|---|---|---|---|
| CentOS 7 | EOL(2024-06) | 12/13/14 | 15+ 依赖较新库(如 libzstd ≥ 1.4.0)在 EL7 上不易满足;优先升级系统或采用容器/外部实例承载新版本。 |
| CentOS Stream 8 / RHEL 8 / Rocky Linux 8 | 维护中 | 15/16/17 | 通过 PGDG 仓库安装;AppStream 默认仅 9.6/10/12/13,需启用 PGDG 获取新版本。 |
| CentOS Stream 9 / RHEL 9 / Rocky Linux 9 | 维护中 | 15/16/17 | 同 EL8,使用 PGDG 安装最新受支持版本。 |
| Alibaba Cloud Linux 3 | 维护中(RHEL8 兼容) | 17 | 可使用 清华镜像源加速安装与更新。 |
在 CentOS 上安装或升级到最新可用 PostgreSQL 的实操步骤
-
适用于 CentOS 8/Stream 8、RHEL 8、Rocky Linux 8(以 PostgreSQL 17 为例)
- 添加 PGDG 仓库
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm - 如系统启用了默认 postgresql 模块,先禁用
sudo dnf -qy module disable postgresql - 安装服务器与客户端
sudo dnf install -y postgresql17-server postgresql17 - 初始化并启动
sudo /usr/pgsql-17/bin/postgresql-17-setup initdb
sudo systemctl enable --now postgresql-17 - 基本连通性(示例)
- postgresql.conf: listen_addresses = ‘*’
- pg_hba.conf: host all all 0.0.0.0/0 scram-sha-256
- 防火墙:sudo firewall-cmd --permanent --add-port=5432/tcp & & sudo firewall-cmd --reload
- 验证
sudo -u postgres psql -c “SELECT version(); ”
注:若使用 Alibaba Cloud Linux 3,可替换为清华镜像源以加速下载。
- 添加 PGDG 仓库
-
适用于 CentOS 7(以 PostgreSQL 12 为例)
- 添加 PGDG 仓库
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm - 启用对应版本仓库并安装
sudo yum install -y epel-release yum-utils
sudo yum-config-manager --enable pgdg12
sudo yum install -y postgresql12-server postgresql12 - 初始化并启动
sudo /usr/pgsql-12/bin/postgresql-setup initdb
sudo systemctl enable --now postgresql-12 - 验证
sudo -u postgres psql -c “SELECT version(); ”
提示:若需 15+,优先考虑迁移到 EL8/EL9 或使用容器化方案。
- 添加 PGDG 仓库
升级路径与兼容性注意事项
- 小版本升级(如 17.2 → 17.4):在同一主版本内使用包管理器直接升级,滚动重启实例即可,注意扩展与参数变更的兼容性。
- 大版本升级(如 14 → 17):优先采用 pg_dumpall 逻辑迁移 或 pg_upgrade 原地升级;升级前务必完成全量备份、扩展兼容性检查与应用回归测试。
- 扩展与驱动:确认 PostGIS、pg_stat_statements、pgvector 等扩展与目标版本兼容;客户端驱动(JDBC/ODBC/psycopg2)建议使用与目标库匹配或更高的主版本。
- 认证与加密:新版本默认更安全的认证方式(如 scram-sha-256);远程访问建议启用 SSL/TLS(ssl = on,hostssl),并收紧 pg_hba.conf 规则。
版本核验与常用命令
- 查看数据库版本
psql -c “SELECT version(); ”
psql -V - 查看已安装扩展与版本
psql -c “SELECT * FROM pg_available_extensions WHERE installed_version IS NOT NULL; ” - 远程连通性测试
psql “host=YOUR_HOST port=5432 user=YOUR_USER dbname=YOUR_DB sslmode=require” - 服务管理
sudo systemctl status postgresql-17
sudo journalctl -u postgresql-17 -f
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: PostgreSQL数据库升级至最新版CentOS兼容性
本文地址: https://pptw.com/jishu/758875.html
