我想知道如何将数据从现有的 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 上也同样有效)
答案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