在不执行 pg_dumpall 的情况下升级 Postgres

Sim*_*mon 5 postgresql upgrade

我正在从 postgres 8.4 升级到 9.0 并查看手册,看起来这是我唯一的选择:

pg_dumpall -p 5432 | psql -d postgres -p 6543
Run Code Online (Sandbox Code Playgroud)

这意味着我需要停止对数据库的任何写入并等待传输几 GB 的数据。

有没有更好的方法可以使用预写日志 (WAL) 将任何新 SQL 重播到新数据库上?

Dan*_*ité 5

从 8.4 开始,pg_upgrade是转储恢复的替代选择,以便在主要版本之间进行升级。它实际上链接在您已经提到的迁移文档页面的末尾。

至于从旧版本重放 WAL 文件,文档说我们不能:

通常,运行不同主要 PostgreSQL 版本级别的服务器之间的日志传送是不可能的

(在日志传送备用服务器中)。