目前我有2台PostgreSQL服务器
在每台服务器上,有时我需要进行架构修改,因此我必须阻止与该特定数据库的所有连接并关闭所有现有连接。由于某些数据库的数据库名称相同,最好的方法是什么?任何帮助表示赞赏。
我正在使用pgAdmin 4.1.3。
什么是SQL代码,用于断开所有现有连接并阻止所有新连接,以及允许新连接返回的相同内容?
答案 0 :(得分:2)
select pg_terminate_backend(pid) from pg_stat_activity where pid <> pg_backend_pid();
会杀死你的所有会话。您可以使用pg_cancel_backend
取消而不是杀死...
要阻止新连接,您可以执行以下任一操作:
alter user set default_transaction_read_only = on
ALTER DATABASE "name" ALLOW_CONNECTIONS false
醇>
第四个可以轻松克服,但不需要更改配置。
第五个not meant for such usage,但绝对有帮助 - 谢谢@Nick Barnes