温馨提示×

CentOS怎么升级PostgreSQL

小樊
37
2026-08-05 00:09:40
栏目: 云计算

CentOS 上升级 PostgreSQL 常见有 两种场景,下面我按 最常用、最安全 的方式给你讲清楚,并附示例命令。


一、先确认当前情况(非常重要)

psql --version
systemctl status postgresql

确认:

  • 当前 PostgreSQL 版本(如 12、13、14)
  • 数据目录(通常是 /var/lib/pgsql/版本号/data

二、升级方式选择

场景 推荐方式
小版本升级(12.8 → 12.15) yum 直接升级
大版本升级(12 → 14、13 → 15) pg_upgrade逻辑备份恢复

三、小版本升级(最安全)

不影响数据,直接升级

1️⃣ 停止 PostgreSQL

systemctl stop postgresql

2️⃣ 升级

yum update postgresql*

或指定版本:

yum update postgresql-server

3️⃣ 启动

systemctl start postgresql

完成


四、大版本升级(示例:12 → 14)

⚠️ 一定要先备份


✅ 方法一:pg_upgrade(推荐)

1️⃣ 安装新版本

yum install postgresql14-server postgresql14-contrib

2️⃣ 初始化新实例

/usr/pgsql-14/bin/postgresql-14-setup initdb

3️⃣ 停止旧版本

systemctl stop postgresql-12

4️⃣ 使用 pg_upgrade

su - postgres
pg_upgrade \
  --old-datadir=/var/lib/pgsql/12/data \
  --new-datadir=/var/lib/pgsql/14/data \
  --old-bindir=/usr/pgsql-12/bin \
  --new-bindir=/usr/pgsql-14/bin

5️⃣ 启动新版本

systemctl start postgresql-14

✅ 方法二:逻辑备份恢复(最稳妥)

适合 数据量不大 的情况。

pg_dumpall -U postgres > /backup/full.sql

安装新版本后:

psql -U postgres -f /backup/full.sql

五、CentOS 7 / 8 / Stream 注意事项

✅ CentOS 7

yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

✅ CentOS 8 / Stream

dnf install https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm

六、升级后必做检查

psql --version
SELECT version();
systemctl status postgresql

七、常见错误

postmaster.pid 存在
✅ 删除旧 pid 文件或确认旧实例已停止

❌ 端口冲突
✅ 检查 postgresql.confport


八、如果你愿意,我可以帮你

你可以直接告诉我: 1️⃣ CentOS 版本
2️⃣ 当前 PostgreSQL 版本
3️⃣ 目标版本

我可以 给你一套完全可复制的命令方案

0