如果我运行 pg_dump 将表转储到 SQL 文件中,它是否会拍摄表中最后一行的快照,并将所有行转储到这一行?
还是它会继续转储所有行,即使是在运行 pg_dump 之后插入的行?
第二个问题是:在运行 pg_dump 之前停止所有插入查询是个好主意吗?
如果我运行 pg_dump 将表转储到 SQL 文件中,它是否会拍摄表中最后一行的快照,并将所有行转储到这一行?
还是它会继续转储所有行,即使是在运行 pg_dump 之后插入的行?
第二个问题是:在运行 pg_dump 之前停止所有插入查询是个好主意吗?
当您运行 pg_dump 时,它将在您的表上获得一个共享锁。运行转储后完成的任何事务都不会包括在内。因此,当转储完成时,如果正在进行的当前事务尚未提交,它们将不会包含在转储中。
还有另一个参数可以运行它说这个
--lock-wait-timeout=timeout 不要一直等待在转储开始时获取共享表锁。如果无法在指定的超时时间内锁定表,则会失败。可以以 SET statement_timeout 接受的任何格式指定超时。(允许的值因您要转储的服务器版本而异,但自 7.3 以来的所有版本都接受整数毫秒数。从 7.3 之前的服务器转储时,此选项将被忽略。)**