循序渐进的指南
Make a backup.确保你的数据库没有被更新.
pg_dumpall > outputfile
Install 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
已经有一个群集main
for 10(因为这是在包安装时默认创建的).这样一来,新的安装就可以开箱即用,而无需先创建集群,但当您try 升级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
First, check that everything works fine.之后,卸下9.6群集:
sudo pg_dropcluster 9.6 main --stop
Some notes on pg_upgradecluster
本指南适用于从9.5升级到10.1.当从旧版本升级时,考虑步骤6中省略-m upgrade
:
sudo pg_upgradecluster 9.6 main
如果你有一个非常大的集群,你可以使用pg_upgradecluster
和--link
选项,这样升级就到位了.然而,这是危险的——如果发生故障,您可能会失go 集群.如果没有必要,不要使用这个选项,因为-m upgrade
已经足够快了.
基于:
使现代化
本指南适用于从9.6升级到11、从10升级到11以及从10升级到13.