笔记:debian 12 update postgresql 15 to 16

备份数据库(纯文本 SQL 脚本):

sudo -u postgres pg_dumpall > all_databases_backup.sql

恢复 (Restore)数据库:

sudo -u postgres psql -f all_databases_backup.sql postgres

 


备份完成后开始升级:

在 Debian 系统上将 PostgreSQL 从版本 15 升级到 16,最简单的方法是 Debian 特有的 pg_upgradecluster 工具。

该工具可以自动处理配置迁移,并最大限度地减少手动操作。

1. 安装 PostgreSQL 16

sudo apt update
sudo apt install postgresql-16 postgresql-client-16

2. 检查当前集群状态

pg_lsclusters

15 main: 通常运行在默认端口 5432。
16 main: 新安装的版本会自动分配一个新端口(如 5433)。 


3. 执行升级流程

升级前必须先停止自动创建的空白 PostgreSQL 16 集群,才可以将版本 15 的数据迁移过来: 

停止PG16:

sudo pg_dropcluster 16 main --stop

运行升级命令:将版本 15 的数据和配置迁移到版本 16。

sudo pg_upgradecluster 15 main


4. 验证升级结果

升级完成后,再次检查集群状态:

pg_lsclusters

此时,16 main 应该已经运行在 5432 端口,而 15 main 处于关闭(down)状态并切换到了其他端口(如 5433)。 


5. 清理旧版本(可选)

确认数据迁移无误且应用程序运行正常后,删除旧数据集群,卸载旧版软件包:

sudo pg_dropcluster 15 main
sudo apt purge postgresql-15 postgresql-client-15
评论列表: