微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如果正在进行pg_restore,我们是否会在应用程序中遇到任何运行时问题?

如何解决如果正在进行pg_restore,我们是否会在应用程序中遇到任何运行时问题?

我是Postgres恢复事物的新手。我们有一个应用程序,其中多个服务正在使用postgres DB。我们正在为此应用程序添加备份/还原功能支持

它将使用pg_dump进行转储。 并且当用户触发还原工作流时,它将调用“ pg_restore”。

因此,如果正在运行“ pg_restore”,并且那时应用程序正在运行某些查询,将会产生什么影响?它会遇到任何运行时错误吗?在pg_restore期间,postgres是否会删除现有的数据库连接?

解决方法

否,运行pg_restore之前必须断开用户的连接。

pg_restore期望数据库为空,但是您可以使用选项--clean--create删除并重新创建数据库。现在DROP DATABASE将阻塞,直到最后一个会话与数据库断开连接为止。

因此,您可以首先断开会话的连接,方法是在适当的sessoins上调用pg_terminate_backend函数,或者使用v13以后的DROP DATABASE ... (FORCE)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。