现在从备份/转储还原大约需要20分钟,
pg_restore --create --exit-on-error --verbose -U postgres --dbname=postgres --verbose --clean -F directory mydb.dump
Q:是否可以从最新的PostgreSQL转储中还原仅新更改(以节省时间),每当有人更改数据库或添加新数据?
-
[我知道通常ppl使用sql脚本并将其应用于它们的数据库。但是如果没有脚本。因为数据库是从外部更改的。
pg_restore
中不支持该功能,但是从PostgreSQL v12开始,您可以将pg_dump
与选项--inserts --on-conflict-do-nothing
一起使用。这样的转储将仅还原那些不违反要还原到的表上的主键或唯一约束的行。
[不,pg_restore无法知道什么是新更改。也许它可能取决于您保留在表中的时间戳,但是它不知道如何执行此操作,因此您必须编写代码来教它。
听起来您真正想要的是使用物理备份,然后重播WAL。