我针对postgres数据库运行了一些关于adhoc分析的查询。很多时候,我会在一天之内保持连接打开,而不是在每次查询后结束。
我每隔五分钟通过一个shell脚本通过scp收到一个postgres转储,我想在不切断连接的情况下恢复数据库。这可能吗?
答案 0 :(得分:1)
用户连接时无法执行的少数活动之一是删除数据库
所以 - 如果这是你在恢复期间所做的事情 - 你将不得不改变你的方法。不要删除数据库(不要使用-C
或pg_dump
中的pg_restore
选项,而是删除并重新创建不包含数据库的模式和对象。取决于架构(如大型对象)
您可以使用-c
或pg_dump
的{{1}}标记。
您可能遇到的另一个问题是与开放交易的连接(状态“交易中空闲”)。这样的连接可以保存锁定,使您不会丢弃和重新创建对象,并且您必须使用pg_restore
来删除它们。