恢复postrgres而不结束连接

时间:2016-09-02 00:49:32

标签: python database postgresql restore

我针对postgres数据库运行了一些关于adhoc分析的查询。很多时候,我会在一天之内保持连接打开,而不是在每次查询后结束。

我每隔五分钟通过一个shell脚本通过scp收到一个postgres转储,我想在不切断连接的情况下恢复数据库。这可能吗?

1 个答案:

答案 0 :(得分:1)

用户连接时无法执行的少数活动之一是删除数据库 所以 - 如果这是你在恢复期间所做的事情 - 你将不得不改变你的方法。不要删除数据库(不要使用-Cpg_dump中的pg_restore选项,而是删除并重新创建不包含数据库的模式和对象。取决于架构(如大型对象) 您可以使用-cpg_dump的{​​{1}}标记。

您可能遇到的另一个问题是与开放交易的连接(状态“交易中空闲”)。这样的连接可以保存锁定,使您不会丢弃和重新创建对象,并且您必须使用pg_restore来删除它们。