是否可以从最新的PostgreSQL转储中仅还原新更改

时间:2019-12-11 19:14:11

标签: postgresql dump

现在从备份/转储还原大约需要20分钟,

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

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

-

我知道通常ppl使用sql脚本并将其应用于它们的数据库。但是如果没有脚本。因为数据库是从外面改变的。

2 个答案:

答案 0 :(得分:1)

否,pg_restore无法知道什么是新更改。也许它可能取决于您保留在表中的时间戳记,但是它不知道如何执行此操作,因此您必须编写代码来教它。

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

答案 1 :(得分:0)

pg_dump中不支持该功能,但是从PostgreSQL v12开始,您可以将--inserts --on-conflict-do-nothing与选项curl -X POST http://127.0.0.1/auth/users/activation/ --data 'uid=myuid&token=mytoken' 一起使用。这样的转储将仅还原那些不违反要还原到的表上的主键或唯一约束的行。