插入查询仍在运行时运行pg_dump?

时间:2013-08-08 23:42:45

标签: sql postgresql pg-dump

如果我运行pg_dump将表转储到SQL文件中,它是否会获取表中最后一行的快照,并将所有行转储到此行?

或者是否继续转储所有行,甚至是那些在pg_dump运行后插入的行?

第二个问题是:在运行pg_dump之前停止所有插入查询是否是个好主意?

1 个答案:

答案 0 :(得分:2)

运行pg_dump时,它将在表上获得共享锁。在运行转储之后完成的任何交易都不会包含在内。因此,当转储完成时,如果当前事务进程尚未提交,则它们将不会包含在转储中。

还有另一个可以运行的参数

- 锁等待超时=超时 不要永远等待转储开始时获取共享表锁。如果无法在指定的超时内锁定表,则会失败。可以以SET statement_timeout接受的任何格式指定超时。 (允许的值取决于您要转储的服务器版本,但自7.3以来所有版本都接受整数毫秒。从7.3之前的服务器转储时,将忽略此选项。)**