在 CentOS 上升级 PostgreSQL 需要根据当前版本和目标版本来区分操作方式。下面我按常见场景给你讲清楚。
psql --version
rpm -qa | grep postgres
常见两种情况:
✅ 不用担心数据,直接升级即可。
sudo yum update postgresql*
sudo systemctl restart postgresql-13
小版本升级不需要
pg_upgrade
⚠️ 必须注意:大版本不兼容,不能直接 yum update
pg_upgradesudo 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)
sudo yum install -y postgresql15-server postgresql15
/usr/pgsql-15/bin/postgresql-15-setup initdb
sudo systemctl stop postgresql-12
sudo systemctl stop postgresql-15
su - postgres
/usr/pgsql-15/bin/pg_upgrade \
--old-datadir=/var/lib/pgsql/12/data \
--new-datadir=/var/lib/pgsql/15/data \
--old-bindir=/usr/pgsql-12/bin \
--new-bindir=/usr/pgsql-15/bin
sudo systemctl start postgresql-15
适合跨大版本 / 云迁移
pg_dumpall -U postgres > all.sql
新版本建好后:
psql -U postgres < all.sql
✅ 升级前一定备份
✅ 检查 postgresql.conf 和 pg_hba.conf
✅ 扩展插件(postgis、pg_stat_statements)需重新安装
✅ 防火墙 / 端口确认
你可以告诉我:
我可以给你一步一步精确命令。