温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

postgresql怎样升级版本

发布时间:2026-10-18 07:13:09 来源:亿速云 阅读:83 作者:小樊 栏目:数据库

下面按常见场景给你讲 PostgreSQL 升级版本的几种方法,从简单到专业。


一、升级前必做(非常重要)

  1. 备份数据库
pg_dumpall > all.sql
# 或
pg_basebackup -D /backup/pgdata
  1. 查看当前版本
psql --version
psql -c "SELECT version();"
  1. 阅读官方 Release Notes

https://www.postgresql.org/docs/


二、推荐方式:pg_upgrade(原地处理,快)

适用

  • 大库
  • 不想导出导入
  • 同机升级

步骤(以 13 → 16 为例)

1. 安装新版本

# CentOS / Rocky
dnf install postgresql16-server

# Ubuntu
apt install postgresql-16

2. 初始化新实例(不启动)

/usr/pgsql-16/bin/initdb -D /var/lib/pgsql/16/data

3. 停止旧库

systemctl stop postgresql-13

4. 执行升级(检查模式)

/usr/pgsql-16/bin/pg_upgrade \
  --old-datadir=/var/lib/pgsql/13/data \
  --new-datadir=/var/lib/pgsql/16/data \
  --old-bindir=/usr/pgsql-13/bin \
  --new-bindir=/usr/pgsql-16/bin \
  --check

5. 正式升级

pg_upgrade ...(同上,去掉 --check)

6. 启动新版本

systemctl start postgresql-16

三、最稳妥方式:pg_dump + 恢复

适用

  • 小库
  • 跨机器
  • 版本跨度大
# 旧库导出
pg_dumpall > all.sql

# 新库导入
psql -f all.sql

✅ 最安全
❌ 慢


四、使用 pglogical(在线升级)

适用

  • 不能停机
  • 主从切换

步骤简述:

  1. 搭建新版本从库
  2. 使用逻辑复制
  3. 切换流量

五、Docker 升级

# 导出
docker exec pg pg_dumpall -U postgres > all.sql

# 启新容器
docker run -e POSTGRES_PASSWORD=xxx -v pgdata16:/var/lib/postgresql/data postgres:16

# 导入
docker exec -i pg psql -U postgres < all.sql

六、常见坑

❗ 扩展(postgis、pg_stat_statements)需重新安装
❗ 配置文件需手动合并
❗ 大版本不能跨太远(建议一步步升)


七、升级路线建议

10 → 13 → 16

不要:

10 → 16(风险高)

如果你告诉我:

  • 操作系统
  • 当前版本
  • 是否可停机

我可以给你精确命令。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手