如何在Ubuntu 16.04上将PostgreSQL 9.5升级到PostgreSQL 10?

8
我有一台运行着PostgreSQL 9.5并拥有约12GB数据的Ubuntu机器。现在我想将我的PostgreSQL版本从9.5升级到10。我查看了一些文章但无法升级,还有一件事是我不想完全卸载PostgreSQL 9.5并安装PostgreSQL 10。我的PostgreSQL 9.5设置如下:
1- PostgreSQL配置文件位于:
/opt/PostgreSQL/9.5/

2- PostgreSQL 10的安装位置
/etc/postgresql/10
3个回答

33

在Debian或Ubuntu上升级PostgreSQL的正常流程如下:

停止新版本的PostgreSQL更新:

service postgresql stop

放置更新版本的群集,以确保里面没有任何内容:

pg_dropcluster --stop 10 main

然后进行数据迁移:

pg_upgradecluster -m upgrade 9.5 main

然后停止先前版本的PotsgreSQL:

pg_dropcluster 9.5 main --stop

移除旧版本:

apt-get autoremove --purge postgresql-9.5 

然后只需重新启动PostgreSQL,新版本带有已迁移的数据库:

service postgresql start

首先感谢您的回复。我需要在Ubuntu机器上安装新的PostgreSQL 10,然后执行答案脚本。 - Manish Yadav
是的,这是一个好的做法。 - Hervé Piedvache
请问您能否查看我的更新后的问题。 - Manish Yadav
在这种情况下,只需按照PostgreSQL文档中的说明操作:https://www.postgresql.org/docs/current/static/upgrading.html#upgrading-via-pgdumpall,使用pg_dumpall将您的9.5数据库转储,然后停止9.5并启动您的10版本,并使用简单的/usr/local/pgsql/bin/psql -d postgres -f your_dump将您的转储集成到此版本中。 - Hervé Piedvache

10

建议使用pg_clusters,无需在升级到pg10时停止postgresql。

在Ubuntu终端中,输入以下命令-

sudo apt-get install postgresql-10 sudo pg_dropcluster 10 main --stop sudo pg_upgradecluster 9.5 main sudo pg_dropcluster 9.5 main

这将首先在您的系统上安装postgresql-10,并尝试使用pg_upgradecluster更新服务器端的postgresql。

这也将解决您不想删除pg-9.5的问题。


由于pg 9.5位于/opt/Postgresq/..,所以sudo pg_upgradecluster 9.5 main对我不起作用。 - Manish Yadav

1
你所说的“无法升级”是什么意思?通常情况下,您可以使用pg_upgrade工具进行就地升级。您需要同时安装旧版本和新版本。我提供的pg_upgrade文档提供了详细的说明。

由于无法升级,意味着我还没有决定是否要在机器上安装PostgreSQL 10或其他东西。 - Manish Yadav

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接