升级 Postgresql 后备份旧集群

Backing up old clusters AFTER upgrading Postgresql

所以,我粗心大意,将 Ubuntu 从 18 升级到 20 —— 因此 postgresql 从 10 升级到 12 —— 没有备份我的 postgresql-10 集群。现在我正在研究升级集群以使用 12,我意识到这是一个错误。既然 postgres 本身已经升级,有没有办法在尝试升级之前备份它们?

我可以复制整个数据文件夹并将其压缩到某个地方,但是 (a) 这会占用很多磁盘空间 space,并且 (b) 我肯定还不太了解 postgres足以从这些文件中恢复。

(这里最后一件烦人的事情,也许值得单独提问,是我的 pg10 数据目录在外部驱动器上,我想继续使用它。即使我可以解决我的备份问题,我我不确定执行此操作的“最简单”方法是什么...)

编辑:实际上我认为我的问题与我想象的有点不同,postgres 备份工具可能仍然适合我。我会回来报告的!

不支持降级 PostgreSQL 的方法。

您最好采用纯格式 pg_dump 并继续编辑文件,直到成功将其加载到 v10 中。将转储分成 pre-datadatapost-data 部分。

事实证明我同时安装了两个版本的 Postgres,所以我能够在升级集群之前使用简单的 'pg_dumpall' 进行备份。 This manpage and this blogpost 都有助于解决问题。

因为我有很多可用的板载存储空间,所以我让 pg_upgradecluster 填充默认数据文件夹,然后将其全部复制到我的外部文件夹,并编辑 conf 文件以指向该文件夹。 (然后,是的,我备份了升级后的集群。)