PG 13 小版本升级 — 离线 RPM 方案适用场景内网环境无法配置 yum 源主库不动只升从库同一主版本13.x → 13.y不动数据目录一、确认当前环境# 看系统版本cat/etc/redhat-release# 看当前 PG 版本rpm-qa|greppostgresql13# 看数据目录psaux|greppostmaster|grep-vgrep二、下载 RPM 包2.1 搜包平台两个平台都能找到 PG 的 RPM 包平台地址pkgs.orghttps://pkgs.org/rpm.pbone.nethttps://rpm.pbone.net/分别搜以下 3 个包名确保版本号一致postgresql13-server-目标版本-1PGDG.rhel系统版本.x86_64.rpm postgresql13-目标版本-1PGDG.rhel系统版本.x86_64.rpm postgresql13-libs-目标版本-1PGDG.rhel系统版本.x86_64.rpm还有 contrib如果已安装postgresql13-contrib-目标版本-1PGDG.rhel系统版本.x86_64.rpm2.2 注意区分 RHEL 版本rhel9 → 对应 RHEL 9 / Rocky 9 rhel8 → 对应 RHEL 8 / Rocky 8下错系统版本会报GLIBC_2.33/libcrypto.so.3等依赖错误。2.3 下载在能上网的机器上从 pkgs.org 的 Download 链接拿到真实地址wget 下来wgetpostgresql13-13.XX-1PGDG.rhelX.x86_64.rpm 的真实地址wgetpostgresql13-libs-13.XX-...wgetpostgresql13-server-13.XX-...传到内网scppostgresql13-*.rpm root内网IP:/tmp/三、升级步骤3.1 停库sudo-upostgres /usr/pgsql-13/bin/pg_ctl stop-mfast-D数据目录3.2 升级 RPMrpm-Uvh/tmp/postgresql13-*.rpmrpm -Uvh含义参数含义-U升级Upgrade自动替换旧版本-v显示详细信息-h显示进度条3.3 起库sudo-upostgres /usr/pgsql-13/bin/pg_ctl start-D数据目录3.4 验证sudo-upostgres /usr/pgsql-13/bin/psql-cSELECT version();四、实际操作记录实例 1RHEL 9PG 13.x → 13.y项目值系统RHEL 9角色从库旧版本13.x新版本13.y数据目录/data/pgsql/13/data/RPM 包rhel9.x86_64# 下好的包传到 /tmpls/tmp/postgresql13-*# 停/usr/pgsql-13/bin/pg_ctl stop-mfast-D/data/pgsql/13/data/# 升rpm-Uvh/tmp/postgresql13-*# 启用新二进制/usr/pgsql-13/bin/pg_ctl start-D/data/pgsql/13/data/# 确认/usr/pgsql-13/bin/psql-cSELECT version();实例 2RHEL 8PG 13.a → 13.b项目值系统RHEL 8旧版本13.a新版本13.b数据目录/var/lib/pgsql/13/data/RPM 包rhel8.x86_64# 停sudo-upostgres /usr/pgsql-13/bin/pg_ctl stop-mfast-D/var/lib/pgsql/13/data/# 升rpm-Uvh/tmp/postgresql13-*# 启sudo-upostgres /usr/pgsql-13/bin/pg_ctl start-D/var/lib/pgsql/13/data/五、如果升级过程中报依赖错误5.1 报GLIBC_2.33等下错系统版本rhel9 的包装到了 rhel8 上去 pkgs.org 重新搜选rhel8/el8后缀的包。5.2 报文件冲突conflicts with file from package用了rpm -ivh而不是rpm -Uvh换成rpm -Uvh即可-U会先卸载旧版再装新版。如果已经报错卡住了先清理rpm-e--justdbpostgresql13 postgresql13-libs postgresql13-server# 仅清数据库记录rpm-Uvh/tmp/postgresql13-*.rpm5.3 contrib 依赖冲突如果装了postgresql13-contrib也要一起升级。搜postgresql13-contrib同版本号的包四个 rpm 一起rpm -Uvh。六、注意事项主库不动只升级从库主库保持原版本小版本升级不碰数据数据目录完全兼容升级完直接起旧二进制清理升级完确认没问题后可以删除旧的手动安装路径如/data/pgsql-13/新 rpm 装的在/usr/pgsql-13/bin/起库用新路径rpm 升级后二进制在/usr/pgsql-13/bin/旧路径下的二进制不再更新