在 CentOS 上升级 PostgreSQL,通常分为 小版本升级(如 13.4 → 13.10) 和 大版本升级(如 12 → 15)。下面分别说明。
psql --version
# 或
rpm -qa | grep postgresql
查看数据目录(通常):
psql -U postgres -c "SHOW data_directory;"
例如:PostgreSQL 13.4 → 13.10
pg_dumpall > /backup/all.sql
systemctl stop postgresql-13
yum update postgresql*
systemctl start postgresql-13
✅ 小版本升级 不需要迁移数据
⚠️ 大版本不兼容,必须迁移数据
pg_upgrade(推荐,快)yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql15-server postgresql15
/usr/pgsql-15/bin/postgresql-15-setup initdb
systemctl stop postgresql-12
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
systemctl start postgresql-15
pg_dumpall -U postgres > all.sql
systemctl stop postgresql-12
systemctl start postgresql-15
psql -U postgres -f all.sql
✅ 适合数据量不大、跨平台迁移
修改新版本端口:
vi /var/lib/pgsql/15/data/postgresql.conf
port = 5433
如 postgis、pg_stat_statements
需重新安装对应版本扩展
systemctl enable postgresql-15
如果你能告诉我:
我可以给你精确命令。