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

bihw5rsg  于 2023-02-12  发布在  PostgreSQL
关注(0)|答案(1)|浏览(123)

如果我运行pg_dump将一个表转储到SQL文件中,它是否获取表中最后一行的快照,并转储到该行为止的所有行?
或者,它会继续转储所有行,甚至是那些在运行pg_dump之后插入的行?
第二个问题是:在运行pg_dump之前停止所有插入查询是否是个好主意?

p4tfgftt

p4tfgftt1#

当你运行pg_dump时,它将获得你的表的共享锁,任何在你运行转储之后**完成的事务都不会被包含,所以当转储完成时,如果有当前事务 * 正在处理 *,还没有提交,它们就不会被包含在转储中。
还有另一个pg_dump option可以运行它:
--lock-wait-timeout=timeout
不要在转储开始时一直等待获取共享表锁。相反,如果无法在指定的超时内锁定表,则会失败。可以使用SET语句_timeout接受的任何格式指定超时。(允许的格式因要从中转储的服务器版本而异,但所有版本都接受整数毫秒。)

相关问题