所以,我不小心把Ubuntu从18升级到20——也就是把postgresql从10升级到12——没有备份我的postgresql-10集群。现在我正在考虑升级集群以使用12个集群,我意识到这是一个错误。现在postgres本身已经升级了,在尝试升级之前是否有办法备份它们?
我可以复制整个数据文件夹并将其压缩到某个地方,但是(a)这会占用很多磁盘空间,(b)我肯定还不太了解postgres,无法从这些文件中恢复。
(这里最后一件令人恼火的事情,可能值得单独讨论,是我的pg10数据目录在一个外部驱动器上,我想继续使用它。即使我能解决我的备份问题,我也不确定什么是"最简单"的。这样做的方法是…)
编辑:实际上我认为我的问题是有点不同于我的想法,和postgres备份工具可能仍然为我工作。我会回来报告的!不支持降级PostgreSQL
您所能做的最好的事情是采用纯格式pg_dump
并继续编辑该文件,直到成功地将其加载到v10中。它有助于将转储文件分成pre-data
、data
和post-data
部分。
原来我同时安装了两个版本的Postgres,所以我能够在升级集群之前使用简单的'pg_dumpall'进行备份。这篇手册和这篇博文都对整理事情很有帮助。
因为我有很多空闲的板载存储空间,所以我让pg_upgradeccluster填充默认数据文件夹,然后我将其全部复制到我的外部,并编辑配置文件以指向该文件夹。(然后,是的,我对升级后的集群进行了备份。)