我的数据库超过 600 GB,而我当前的容量只有 1 TB,所以这可能会限制我的选择。
我的配置文件在这里:
/etc/postgresql/9.6/main
我的数据库在这里:
/mnt/1TB/postgresql/9.6/main
编辑 - 本指南对我有用。我唯一需要做的是手动下载 libicu55 并安装它,我必须为我的/tmp/文件夹授予 postgres 1777 权限。我还将数据文件夹保存到不同的驱动器,所以我不得不使用命令:
pg_upgradecluster -m upgrade 10 main /mnt/1TB/postgresql/10
https://gist.github.com/delameko/bd3aa2a54a15c50c723f0eef8f583a44
最佳答案
分步指南
备份。确保您的数据库没有更新。
pg_dumpall > outputfile
安装 Postgres 10。按照此页面上的说明进行操作:https://www.postgresql.org/download/linux/ubuntu/
然后运行
sudo apt-get install postgresql-10
。较新版本将与较早版本并排安装。运行
pg_lsclusters
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5432 online postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5433 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
已经有一个 10 的集群
main
(因为这是在包安装时默认创建的)。这样做是为了让全新安装开箱即用,无需先创建集群,但是当您尝试升级9.6/main
时10/main< 当然会发生冲突
也存在。推荐的步骤是使用pg_dropcluster
删除 10 集群,然后使用pg_upgradecluster
进行升级。停止第 10 个集群并将其删除:
sudo pg_dropcluster 10 main --stop
停止写入数据库的所有进程和服务。停止数据库:
sudo systemctl stop postgresql
升级 9.6 集群:
sudo pg_upgradecluster -m upgrade 9.6 main
再次启动PostgreSQL
sudo systemctl start postgresql
运行
pg_lsclusters
。您的 9.6 集群现在应该“关闭”,而 10 集群应该在线5432
:Ver Cluster Port Status Owner Data directory Log file 9.6 main 5433 down postgres /var/lib/postgresql/9.6/main /var/log/postgresql/postgresql-9.6-main.log 10 main 5432 online postgres /var/lib/postgresql/10/main /var/log/postgresql/postgresql-10-main.log
首先,检查一切是否正常。然后,删除 9.6 集群:
sudo pg_dropcluster 9.6 main --stop
关于pg_upgradecluster
的一些说明
本指南适用于从 9.5 升级到 10.1。从旧版本升级时,请考虑在步骤 #6 中省略 -m upgrade
:
sudo pg_upgradecluster 9.6 main
如果您有一个非常大的集群,您可以使用带有--link
选项的pg_upgradecluster
,这样就可以进行升级。但是,这很危险——如果发生故障,您可能会丢失集群。除非必要,否则不要使用此选项,因为 -m upgrade
已经足够快了。
基于:
- 文档:Upgrading a PostgreSQL Cluster
- 要点 #1:delameko/upgrade-postgres-9.5-to-9.6.md
- 要点 #2:johanndt/upgrade-postgres-9.3-to-9.5.md
- What happens if I interrupt or cancel
pg_upgradecluster
? - Ubuntu manpage for pg_upgradecluster
更新
本指南适用于从 9.6 升级到 11、从 10 升级到 11,以及从 10 升级到 13。
关于postgresql - 在 Ubuntu 16.10 上将 PostgreSQL 从 9.6 升级到 10.0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46687645/