第一步:备份数据(至关重要!)
在进行任何升级操作前,务必先备份现有数据。
# 如果旧版服务正在运行,先备份数据
sudo -u postgres pg_dumpall > /tmp/backup_all.sql# 停止旧服务
sudo systemctl stop postgresql
第二步:安装 PostgreSQL 官方仓库
RHEL 8 自带的 AppStream 仓库里的版本更新较慢,建议使用 PostgreSQL 官方仓库获取最新版本。
- 安装仓库 RPM:
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-8-x86_64/pgdg-redhat-repo-latest.noarch.rpm
- 禁用 RHEL 自带的 PostgreSQL 模块:
RHEL 8 使用模块化流,这会屏蔽官方仓库的同名包,必须先禁用。
sudo dnf -qy module disable postgresql
第三步:安装新版本 PostgreSQL
现在可以从官方仓库安装新版本了(以安装 PostgreSQL 16 为例):
sudo dnf install -y postgresql16-server postgresql16
第四步:初始化新数据库
安装完成后,需要初始化新版本的数据目录。
# 初始化数据库
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
# 启用开机自启
sudo systemctl enable postgresql-16
