我试图将我的 postgres 安装从 9.5.7 升级到9.6.5
我的 postgres 数据库生产实例有几个数据库,到目前为止消耗了大约 700 GB的空间。
pg_upgrade需要 2 个不同的目录用于新旧数据目录。
pg_upgrade -b oldbindir -B newbindir -d olddatadir -D newdatadir
它需要一个新目录来执行 pg_upgrade,因为我能够在本地/阶段数据库中运行上述命令,因为与 prod 相比,我的数据库大小很小,并且我在本地观察到以下内容
sudo du -sh /var/lib/pgsql/data-9.5
64G /var/lib/pgsql/data-9.5
sudo du -sh /var/lib/pgsql/data-9.6
60G /var/lib/pgsql/data-9.6
并且我有足够的可用数据空间来在我的本地/阶段执行临时 pg_upgrade 过程,并且我在那里成功地完成了。
在生产过程中,我只有约 300 GB的可用空间。
但是,在成功升级后,我们将删除/var/lib/pgsql/data-9.5目录。
有没有办法进行就地数据升级,以便临时 pg_upgrade 进程不需要相同数量的额外空间?