我的配置文件在这里:
/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的集群主机(因为这是默认情况下在程序包安装时创建的).这样做是为了使新的安装能够开箱即用而无需首先创建集群,但当你尝试升级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
>运行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