温馨提示×

怎样升级debian postgresql版本

小樊
37
2026-09-11 09:10:50
栏目: 云计算

在 Debian 上升级 PostgreSQL 版本,通常有两种常见场景:

  1. 小版本升级(如 15.3 → 15.4):只是安全/BUG 修复
  2. 大版本升级(如 14 → 15 / 15 → 16):需要迁移数据目录

下面按最常用、最安全的方式说明。


一、小版本升级(同主版本)

直接通过 Debian 包管理器升级即可:

sudo apt update
sudo apt upgrade postgresql

升级后重启服务:

sudo systemctl restart postgresql

✅ 数据无需迁移
✅ 配置文件兼容


二、大版本升级(跨主版本)

示例:PostgreSQL 14 → 15

1. 查看当前版本

psql --version
sudo pg_lsclusters

示例输出:

14  main  5432 online

2. 安装新版本

sudo apt update
sudo apt install postgresql-15

安装后:

14  main  5432 online
15  main  5433 online

3. 停止数据库

sudo systemctl stop postgresql

4. 使用 pg_upgrade 迁移数据(推荐)

方式一:使用 Debian 提供的 pg_upgradecluster(最简单 ✅)

sudo pg_upgradecluster 14 main

系统会自动:

  • 创建 15 的数据目录
  • 迁移数据
  • 切换端口

完成后:

sudo pg_dropcluster 14 main
sudo apt remove postgresql-14

方式二:手动 pg_upgrade(高级用户)

sudo -u postgres \
pg_upgrade \
-d /var/lib/postgresql/14/main \
-D /var/lib/postgresql/15/main \
-b /usr/lib/postgresql/14/bin \
-B /usr/lib/postgresql/15/bin

5. 启动并验证

sudo systemctl start postgresql
sudo -u postgres psql -c "SELECT version();"

三、使用逻辑备份方式(可选)

如果你更喜欢“干净迁移”:

sudo -u postgres pg_dumpall > all.sql
sudo apt install postgresql-15
sudo -u postgres psql < all.sql

⚠️ 适合数据量不大时


四、注意事项

  • ✅ 先备份!
sudo -u postgres pg_dumpall > backup.sql
  • ✅ 升级前阅读官方 Release Notes
  • ✅ 扩展(postgis、timescaledb 等)需确认兼容新版本
  • ✅ Debian 默认使用 apt.postgresql.org

五、推荐源(如未使用)

sudo apt install curl ca-certificates
curl https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo gpg --dearmor -o /usr/share/keyrings/postgresql.gpg
echo "deb [signed-by=/usr/share/keyrings/postgresql.gpg] http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
sudo apt update

如果你告诉我:

  • 当前 Debian 版本(如 11 / 12)
  • 当前 PostgreSQL 版本
  • 是否使用 Docker / 集群 / 扩展

我可以给你精确命令

0