如果我运行pg_dump将表转储到SQL文件中,它是否会获取表中最后一行的快照,并将所有行转储到此行?
或者是否继续转储所有行,甚至是那些在pg_dump运行后插入的行?
第二个问题是:在运行pg_dump之前停止所有插入查询是否是个好主意?
答案 0 :(得分:2)
运行pg_dump时,它将在表上获得共享锁。在运行转储之后完成的任何交易都不会包含在内。因此,当转储完成时,如果当前事务进程尚未提交,则它们将不会包含在转储中。
还有另一个可以运行的参数
的 强> 的 - 锁等待超时=超时强> 不要永远等待转储开始时获取共享表锁。如果无法在指定的超时内锁定表,则会失败。可以以SET statement_timeout接受的任何格式指定超时。 (允许的值取决于您要转储的服务器版本,但自7.3以来所有版本都接受整数毫秒。从7.3之前的服务器转储时,将忽略此选项。)**