首页主机资讯PostgreSQL在Ubuntu上的版本升级指南

PostgreSQL在Ubuntu上的版本升级指南

时间2025-12-03 15:51:04发布访客分类主机资讯浏览1384
导读:Ubuntu 上升级 PostgreSQL 的完整流程 一 升级前准备 备份全部数据(强烈建议):使用物理备份或逻辑备份。逻辑备份示例:sudo -u postgres pg_dumpall > /path/to/backup.sq...

Ubuntu 上升级 PostgreSQL 的完整流程

一 升级前准备

  • 备份全部数据(强烈建议):使用物理备份或逻辑备份。逻辑备份示例:sudo -u postgres pg_dumpall > /path/to/backup.sql
  • 检查当前版本:sudo -u postgres psql -c "SELECT version(); "
  • 确认兼容性:大版本升级(如 14 → 15)需阅读官方兼容性说明,评估扩展、参数、依赖对象变化。
  • 选择维护窗口:升级期间需停写,并预留回滚时间。
  • 客户端一致性:执行备份/导出时尽量使用与目标库版本一致的客户端工具,避免出现“pg_dump 版本低于服务器版本”的错误。

二 小版本升级 同主版本内(如 14.5 → 14.7)

  • 停止服务:sudo systemctl stop postgresql
  • 更新软件包:sudo apt update & & sudo apt upgrade postgresql-14(明确指定当前主版本)。
  • 启动服务:sudo systemctl start postgresql
  • 验证版本:sudo -u postgres psql -c "SELECT version(); "

三 大版本升级 跨主版本(如 14.x → 15.x)

  • 安装新版本二进制
    • 添加官方仓库(若系统源版本较旧):
      echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
      wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
      sudo apt update
    • 安装新主版本:sudo apt install postgresql-15
  • 停止旧版本:sudo systemctl stop postgresql(或 sudo systemctl stop postgresql@14-main)。
  • 选择升级方式
    • 方式 A:使用 pg_upgrade(速度快,要求二进制兼容)
      1. 检查:sudo -u postgres /usr/lib/postgresql/15/bin/pg_upgrade -b /usr/lib/postgresql/14/bin -B /usr/lib/postgresql/15/bin -d /var/lib/postgresql/14/main -D /var/lib/postgresql/15/main --check
      2. 执行:sudo -u postgres /usr/lib/postgresql/15/bin/pg_upgrade -b /usr/lib/postgresql/14/bin -B /usr/lib/postgresql/15/bin -d /var/lib/postgresql/14/main -D /var/lib/postgresql/15/main -o '-c config_file=/etc/postgresql/14/main/postgresql.conf' -O '-c config_file=/etc/postgresql/15/main/postgresql.conf'
      3. 更新统计信息:sudo -u postgres /usr/lib/postgresql/15/bin/vacuumdb --all --analyze-in-stages
    • 方式 B:使用逻辑转储(最稳妥,跨版本兼容性好)
      1. 导出:sudo -u postgres pg_dumpall -f /path/to/backup.sql
      2. 初始化新集群:sudo -u postgres /usr/lib/postgresql/15/bin/initdb -D /var/lib/postgresql/15/main
      3. 启动新实例:sudo systemctl start postgresql@15-main
      4. 导入:sudo -u postgres psql -f /path/to/backup.sql postgres
  • 配置与切换
    • 复制并重用旧配置(按需合并):sudo cp /etc/postgresql/14/main/*.conf /etc/postgresql/15/main/(注意参数差异与新增项)。
    • 端口与监听:如需避免端口冲突,可在 /etc/postgresql/15/main/postgresql.conf 中设置 port = 5433,以及 listen_addresses = '*'(变更需重启)。
    • 认证:在 /etc/postgresql/15/main/pg_hba.conf 中按需配置 local/host 的认证方式(如 md5scram-sha-256)。
  • 验证与清理
    • 验证:sudo -u postgres psql -c "SELECT version(); ",检查应用连接、复制、扩展是否正常。
    • 清理(确认无误后):sudo pg_dropcluster 14 main --stop

四 常见问题与排错

  • 客户端版本过低导致备份失败:出现 “pg_dump 版本低于服务器版本” 时,升级本地客户端工具或直接使用目标库版本的 pg_dump(如安装对应版本的 postgresql-client 包)。
  • 端口冲突:新版本默认 5432,若被占用,修改 postgresql.confport 并重启;应用需同步更新连接端口。
  • 权限与远程访问:确保 pg_hba.conf 允许所需来源与认证方式;远程访问需设置 listen_addresses 与防火墙放行。
  • 升级后性能波动:执行 vacuumdb --all --analyze-in-stages 重建统计信息,必要时检查索引与扩展版本。

五 建议的升级顺序清单

  1. 备份(物理或 pg_dumpall)→ 2) 检查版本与兼容性 → 3) 安装新版本二进制 → 4) 选择升级方式(pg_upgrade 或逻辑转储)→ 5) 校验与统计信息更新 → 6) 调整配置与端口 → 7) 应用回归验证 → 8) 监控与清理旧集群。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: PostgreSQL在Ubuntu上的版本升级指南
本文地址: https://pptw.com/jishu/762445.html
如何在Ubuntu上利用PostgreSQL进行数据分析 PostgreSQL在Ubuntu上的故障排查方法

游客 回复需填写必要信息