Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 在插入查询仍在运行时运行pg_dump?_Sql_Postgresql_Pg Dump - Fatal编程技术网

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

Sql 在插入查询仍在运行时运行pg_dump?,sql,postgresql,pg-dump,Sql,Postgresql,Pg Dump,如果我运行pg_dump将一个表转储到一个SQL文件中,它是否会对表中的最后一行进行快照,并将所有行转储到这一行 还是继续转储所有行,甚至是在运行pgu转储后插入的行 第二个问题是:在运行pg_转储之前停止所有insert查询是否是一个好主意?当您运行pg_转储时,它将在您的表上获得一个共享锁。运行转储后完成的所有事务都将不包括在内。所以,当转储完成时,如果进程中存在尚未提交的当前事务,它们将不会被包括在转储中 还有另一个参数可以用来运行它,它说明了这一点 --锁定等待超时=超时 不要永远等待在

如果我运行pg_dump将一个表转储到一个SQL文件中,它是否会对表中的最后一行进行快照,并将所有行转储到这一行

还是继续转储所有行,甚至是在运行pgu转储后插入的行


第二个问题是:在运行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启动之前提交的所有事务,或者类似的内容