Sql 在插入查询仍在运行时运行pg_dump?
如果我运行pg_dump将一个表转储到一个SQL文件中,它是否会对表中的最后一行进行快照,并将所有行转储到这一行 还是继续转储所有行,甚至是在运行pgu转储后插入的行Sql 在插入查询仍在运行时运行pg_dump?,sql,postgresql,pg-dump,Sql,Postgresql,Pg Dump,如果我运行pg_dump将一个表转储到一个SQL文件中,它是否会对表中的最后一行进行快照,并将所有行转储到这一行 还是继续转储所有行,甚至是在运行pgu转储后插入的行 第二个问题是:在运行pg_转储之前停止所有insert查询是否是一个好主意?当您运行pg_转储时,它将在您的表上获得一个共享锁。运行转储后完成的所有事务都将不包括在内。所以,当转储完成时,如果进程中存在尚未提交的当前事务,它们将不会被包括在转储中 还有另一个参数可以用来运行它,它说明了这一点 --锁定等待超时=超时 不要永远等待在
第二个问题是:在运行pg_转储之前停止所有insert查询是否是一个好主意?当您运行pg_转储时,它将在您的表上获得一个共享锁。运行转储后完成的所有事务都将不包括在内。所以,当转储完成时,如果进程中存在尚未提交的当前事务,它们将不会被包括在转储中 还有另一个参数可以用来运行它,它说明了这一点 --锁定等待超时=超时
不要永远等待在转储开始时获取共享表锁。如果无法在指定的超时内锁定表,则会失败。超时可以用SET语句\ U timeout接受的任何格式指定。(允许的值因要从中转储的服务器版本而异,但从7.3版开始的所有版本都接受整数毫秒。从7.3版之前的服务器转储时将忽略此选项。)**如果事务在
pg_dump
启动之前启动,并在pg_dump
启动之后完成,但在其完成之前完成,该怎么办?如果事务在您的转储启动之前未完成,则不包括该事务,或者就此而言,如果pg_dump启动,事务启动,事务完成,pg_转储完成?当您运行pg_转储时,您正在以运行它时的状态转储数据库-它使数据库保持一致状态。因此,任何未结交易都不包括在内。为了澄清,在运行pgu dump之后启动和完成的任何事务都不会包括在eitherOk中,谢谢。我只是澄清一下,因为您的答案中的第一段有点含糊不清。您可能需要提到,pg_dump是在数据库的快照上运行的,其中包括pg_dump启动之前提交的所有事务,或者类似的内容