gpt4 book ai didi

PostgreSQL:暂时禁用连接

转载 作者:行者123 更新时间:2023-11-29 11:08:28 24 4
gpt4 key购买 nike

我在 PostgreSQL 中有一个脚本,它每晚从转储中恢复测试数据库。数据库由应用程序服务器和带有连接池的进程访问,连接池始终保持少数连接处于事件状态。

因此脚本将转储恢复到 my_temp_database。然后它应该将 my_database 重命名为 my_old_database,将 my_temp_database 重命名为 my_database,并最终删除 my_old_database.

如何从 my_database 断开所有客户端(无论是否为 super 用户),以便重命名?我怎样才能暂时阻止他们重新连接?

有没有更好的方法来满足我的需要?

最佳答案

将数据库“applogs”标记为不接受新连接:

update pg_database set datallowconn = false where datname = 'applogs';

另一种可能性是撤销客户端角色对数据库的“连接”访问权限。

断开用户与数据库的连接 = 终止后端。因此,要断开所有其他用户与“applogs”数据库的连接,例如:

select pg_terminate_backend(procpid)
from pg_stat_activity
where datname = 'applogs' and procpid <> pg_backend_pid();

完成这两项操作后,您就是唯一连接到“applogs”的用户。尽管在后端实际完成断开连接之前实际上可能会有延迟?

关于PostgreSQL:暂时禁用连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3185266/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com