是pg_dump数据库转储'当时'转储?

Fin*_*cer 3 postgresql pg-dump

我知道PostgresQL pg_dump保证了一致性,即使在转储过程中修改了DB,但我想知道最终转储是否包含转储启动后修改/插入的任何数据.

详细说明:

  1. 时间t:我开始pg_dump
  2. 时间t + 1:数据库有更新/插入
  3. 时间t + x:pg_dump完成.

我不希望在'x'期间进行的任何修改都出现在转储文件中.

这可能吗?

Kyl*_*ton 6

在另一个SO问题中回答了这个问题:在仍有许多活动事务的情况下执行pg_dump.

简短的回答是肯定的:pg_dump打开一个事务,并且在转储期间对它没有任何对数据库的更改,因此pg_dump快照是原子的并且是一致的快照(哇,没有外键或其他约束将被违反)快照).

HTH