加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL:临时禁用连接

发布时间:2020-12-13 16:26:12 所属栏目:百科 来源:网络整理
导读:我在PostgreSQL中有一个脚本,每个晚上都会从dump中恢复测试数据库.应用程序服务器和具有连接池的进程访问数据库,它始终保持一些连接的活动. 所以脚本将dump转储到my_temp_database.那么它应该将my_database重命名为my_old_database,my_temp_database到my_dat
我在PostgreSQL中有一个脚本,每个晚上都会从dump中恢复测试数据库.应用程序服务器和具有连接池的进程访问数据库,它始终保持一些连接的活动.

所以脚本将dump转储到my_temp_database.那么它应该将my_database重命名为my_old_database,my_temp_database到my_database,最后删除my_old_database.

如何从my_database断开所有客户端,超级用户,否则可以重命名?我如何临时阻止他们重新连接?

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

将数据库’applogs’标记为不接受新连接:
update pg_database set datallowconn = false where datname = 'applogs';

另一个可能的办法是撤销客户机角色的数据库上的“连接”访问.

断开用户与database = kill后端的连接.所以要断开所有其他用户与“applogs”数据库的连接,例如:

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

一旦你完成了这两个,你是唯一的用户连接到’applogs’.虽然在后端实际上完成断开连接之前可能会有延迟?

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读