PostgreSQL: Temporarily disable connections

后端 未结 5 1815
我在风中等你
我在风中等你 2020-12-14 00:50

I have a script in PostgreSQL which restores test database from dump every night. The database is accessed by app servers and processes with connection pool which keeps a fe

5条回答
  •  情深已故
    2020-12-14 01:16

    To mark database 'applogs' as not accepting new connections:

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

    Another possibility would be to revoke 'connect' access on the database for the client role(s).

    Disconnect users from database = kill backend. So to disconnect all other users from "applogs" database, for example:

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

    Once you've done both of those, you are the only user connected to 'applogs'. Although there might actually be a delay before the backends actually finish disconnecting?

提交回复
热议问题