温馨提示×

CentOS如何切换PostgreSQL版本

小樊
41
2026-07-09 17:41:46
栏目: 云计算

CentOS 上切换 PostgreSQL 版本,常见有 三种场景。下面按使用频率从高到低说明,并给出推荐做法


一、最推荐方式:使用官方 PostgreSQL 仓库(多版本共存)

这是 生产环境最安全、最常用 的方式。

1️⃣ 安装官方 PostgreSQL 仓库

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

CentOS 8 用 EL-8,CentOS 7 用 EL-7


2️⃣ 查看可用版本

yum list available | grep postgresql

常见版本:

  • postgresql14-server
  • postgresql15-server
  • postgresql16-server

3️⃣ 安装新版本(不卸载旧版本)

sudo yum install -y postgresql15-server

4️⃣ 初始化新版本数据库

sudo /usr/pgsql-15/bin/postgresql-15-setup initdb

5️⃣ 停止旧版本,启动新版本

sudo systemctl stop postgresql-14
sudo systemctl disable postgresql-14

sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15

此时两个版本可共存,只是端口不同(默认 5432 / 5433)


二、切换默认 PostgreSQL(不推荐直接卸载)

如果你只是想“切换系统默认 PostgreSQL”,而不是多版本共存:

1️⃣ 卸载旧版本

sudo yum remove postgresql postgresql-server

⚠️ 注意:不要误删数据目录 /var/lib/pgsql/


2️⃣ 安装新版本

sudo yum install -y postgresql15-server

3️⃣ 迁移数据(如需要)

sudo systemctl stop postgresql
sudo mv /var/lib/pgsql/data /var/lib/pgsql/data.bak
sudo cp -r /var/lib/pgsql/15/data /var/lib/pgsql/data

三、使用 pg_upgrade 升级(数据库升级专用)

适用于 大版本升级(如 13 → 16)

pg_upgrade \
  --old-datadir=/var/lib/pgsql/13/data \
  --new-datadir=/var/lib/pgsql/16/data \
  --old-bindir=/usr/pgsql-13/bin \
  --new-bindir=/usr/pgsql-16/bin

✅ 官方推荐
❌ 操作复杂,需停机


四、切换 PostgreSQL 端口(避免冲突)

编辑配置文件:

vim /var/lib/pgsql/15/data/postgresql.conf

修改:

port = 5433

然后:

sudo systemctl restart postgresql-15

五、查看当前 PostgreSQL 版本

psql --version
psql -U postgres -c "SELECT version();"

✅ 推荐方案总结

场景 推荐方案
生产环境 官方仓库 + 多版本共存
测试环境 直接安装新版本
数据库升级 pg_upgrade
简单切换 systemctl 启停不同版本

如果你愿意,可以告诉我:

  • ✅ CentOS 版本(7 / 8 / Stream)
  • ✅ 当前 PostgreSQL 版本
  • ✅ 是否已有生产数据

我可以给你 一条命令级的操作方案

0