news 2026/6/26 6:54:27

PG 13 小版本升级 — 离线 RPM 方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
PG 13 小版本升级 — 离线 RPM 方案

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.rpm

2.2 注意区分 RHEL 版本

rhel9 → 对应 RHEL 9 / Rocky 9 rhel8 → 对应 RHEL 8 / Rocky 8

下错系统版本会报GLIBC_2.33/libcrypto.so.3等依赖错误。

2.3 下载

在能上网的机器上,从 pkgs.org 的 Download 链接拿到真实地址,wget 下来:

wget<postgresql13-13.XX-1PGDG.rhelX.x86_64.rpm 的真实地址>wget<postgresql13-libs-13.XX-...>wget<postgresql13-server-13.XX-...>

传到内网:

scppostgresql13-*.rpm root@<内网IP>:/tmp/

三、升级步骤

3.1 停库

sudo-upostgres /usr/pgsql-13/bin/pg_ctl stop-mfast-D<数据目录>

3.2 升级 RPM

rpm-Uvh/tmp/postgresql13-*.rpm

rpm -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-c"SELECT version();"

四、实际操作记录

实例 1:RHEL 9,PG 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-c"SELECT version();"

实例 2:RHEL 8,PG 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-*.rpm

5.3 contrib 依赖冲突

如果装了postgresql13-contrib,也要一起升级。搜postgresql13-contrib同版本号的包,四个 rpm 一起rpm -Uvh


六、注意事项

  • 主库不动:只升级从库,主库保持原版本
  • 小版本升级不碰数据:数据目录完全兼容,升级完直接起
  • 旧二进制清理:升级完确认没问题后,可以删除旧的手动安装路径(如/data/pgsql-13/),新 rpm 装的在/usr/pgsql-13/bin/
  • 起库用新路径:rpm 升级后二进制在/usr/pgsql-13/bin/,旧路径下的二进制不再更新
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/26 6:52:35

Gmail账号批量生成终极指南:5分钟掌握自动化创建技巧

Gmail账号批量生成终极指南&#xff1a;5分钟掌握自动化创建技巧 【免费下载链接】gmail-generator ✉️ Python script that generates a new Gmail account with random credentials 项目地址: https://gitcode.com/gh_mirrors/gm/gmail-generator 在数字时代&#xf…

作者头像 李华
网站建设 2026/6/26 6:47:05

多模型并发调度实测教程:Gemini 与 Claude 协同实现后端接口高效开发

写一个带分布式锁的库存扣减接口&#xff0c;你要花多少时间在 AI 工具的切换上&#xff1f;我以前总习惯先用一个模型搭框架&#xff0c;再复制到另一个模型补逻辑&#xff0c;光来回粘贴需求、表结构、中间代码&#xff0c;就能耗掉近三分之一的开发时间。直到摸索出多模型并…

作者头像 李华
网站建设 2026/6/26 6:46:17

JiYuTrainer深度解析:破解极域电子教室控制的技术艺术

JiYuTrainer深度解析&#xff1a;破解极域电子教室控制的技术艺术 【免费下载链接】JiYuTrainer 极域电子教室防控制软件, StudenMain.exe 破解 项目地址: https://gitcode.com/gh_mirrors/ji/JiYuTrainer 在数字化的教学环境中&#xff0c;极域电子教室作为广泛使用的教…

作者头像 李华
网站建设 2026/6/26 6:45:26

多合一四可装置,帮光伏电站砍掉 30% 硬件与运维成本

在光伏电站建设与长效运营中&#xff0c;合规并网、智能调度、数据安全传输是刚需标配。长期以来&#xff0c;行业主流采用四可终端AGC/AVC群控装置纵向加密网关独立通讯模块四设备堆叠的传统方案&#xff0c;看似功能齐全&#xff0c;实则暗藏多重隐性成本&#xff1a;设备采购…

作者头像 李华
网站建设 2026/6/26 6:44:46

【毕业设计】微信小程序驱动的旅行足迹记录与共享平台设计与实现 基于 SpringBoot 的旅游打卡与游迹分享管理系统设计与实现(源码+文档+远程调试,全bao定制等)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华