在 Debian 上将 postgreSQL 数据库从 14 升级到 15

在 Debian 上将 postgreSQL 数据库从 14 升级到 15

我想知道如何将数据从现有的 PostgreSQL 14 安装升级到 15。

我通过 apt 自动安装了 PG 15,所以我明白了

# dpkg -l | grep ii | cut -d" " -f3 | grep postgresql-1

postgresql-14
postgresql-15

但数据还是全部在PG 14。

有两个服务

service postgresql@14-main status

service postgresql@15-main status

答案1

确保您仍在旧的 14 集群上运行,然后备份您的数据

pg_dumpall -F t > ~/backup_postgres_all_dbs.tar

停止仍然为空的默认安装的 postgreSQL 15 集群并将其删除。

pg_dropcluster 15 main --stop

将14集群升级到最新版本(目前是15)

pg_upgradecluster 14 main

这可能需要几个小时。完成后,检查升级后的集群是否正常工作:

service postgresql@14-main stop
service postgresql@15-main start

您的 14 集群现在应该处于“关闭”状态。您可以验证它正在运行:

pg_lsclusters

Ver Cluster Port Status Owner    Data directory              Log file
14  main    5433 down   postgres /var/lib/postgresql/14/main /var/log/postgresql/postgresql-14-main.log
15  main    5432 online postgres /var/lib/postgresql/15/main /var/log/postgresql/postgresql-15-main.log

检查使用 postgreSQL 的应用程序是否都能正常工作(最终调整 psql-15 配置中的端口)。如果一切正常,则删除 14 簇

# !be really sure to call this!
# !DON'T BE TOO FAST!!! # pg_dropcluster 14 main

并删除旧的包。

apt-get purge postgresql-14 postgresql-client-14

(注意:这很可能在 Kali 上也同样有效)

改编自:https://www.paulox.net/2022/04/28/upgrading-postgresql-from-version-13-to-14-on-ubuntu-22-04-jammy-jellyfish/

答案2

或者转储并重新导入您的数据

sudo -u postgres pg_dumpall --cluster 14/main > ~/backup_postgres_all_dbs.sql
sudo -u postgres psql -d postgres --cluster 15/main -f ~/backup_postgres_all_dbs.sql

https://unix.stackexchange.com/a/707827/20661

相关内容