是否可以仅从最新的 PostgreSQL 转储中恢复新的更改

Is it possible to restore only new changes from latest PostgreSQL dump

现在从 back-up/dump 恢复大约需要 20 分钟,

pg_restore  --create --exit-on-error --verbose  -U postgres --dbname=postgres  --verbose --clean -F directory mydb.dump

问:是否可以从最新的 PostgreSQL 转储中恢复仅新更改(以节省时间), 每当有人更改数据库或添加新数据时?

--

我知道人们通常使用 sql 脚本并将它们应用到他们的数据库中。但是如果没有脚本。因为数据库是从外部更改的。

pg_restore 中不支持它,但是从 PostgreSQL v12 开始,您可以使用带有选项 --inserts --on-conflict-do-nothingpg_dump。这样的转储将仅恢复那些不违反您恢复到的 table 上的主键或唯一约束的行。

不,pg_restore 无法知道有哪些新变化。也许它可以依赖于您保存在表中的时间戳,但它不知道如何执行此操作,您必须编写代码来教它。

听起来你真正想要的是使用物理备份,然后 WAL 重放。