在Debian trixie中升级PostgreSQL 15到PostgreSQL 17

首先,升级Debian bookworm到Debian trixie。

升级后,不要急。不要急着清理(purge)旧的软件包。待升级PostgreSQL 15到PostgreSQL 17后,再清理旧的postgresql-15软件包。

如果你和我一样,已经将postgresql-15软件包清理了,则需要先安装postgresql-15软件包。当然,Debian trixie已经不再提供postgres-15软件包了,所以需要从第三方处安装。

如果已经将postgresql-15包清理了,执行下列脚本:

/usr/share/postgresql-common/pgdg/apt.postgresql.org.sh

该脚本将Postgreql官方提供的(而不是Debian项目提供的)仓库加入软件源中。

再更新软件源。

apt update

再安装postgresql-15软件包。

apt install postgresql-15

执行postgresql数据的更新。

查看先有的数据库集群:

pg_lscluster

升级数据库集群:

pg_upgradecluster -v 17 15 main

该命令将版本15的main集群升级为版本17的main集群。

升级完成后,检查数据库集群是否可用。如果可用,可以考虑删除旧的集群。

pg_dropcluster 15 main

注意:

升级数据库有操作失败、硬件故障、软件错误等问题,应预先备份数据库。

如果数据库使用了插件,应自行检查插件的可升级性。

不同的数据库集群有各自的特点,因此,此处所列也许不适合你的数据库集群。

升级之前,应制订升级预案。