Thread: Forcibly disconnect users from one database

Forcibly disconnect users from one database

From
"Andrus"
Date:
Hi!

Postgres 12 does not allow to drop database if it is in use. DROP DATABASE throws error:

postgres@template1 ERROR:  database "mydb" is being accessed by other users
postgres@template1 DETAIL:  There is 1 other session using the database.
postgres@template1 STATEMENT:  DROP DATABASE "mydb"

How to disconnect all users from database?
Using 

/etc/init.d/postgresql restart  

disconnects users from all databases. How to disconnect users from one database only ?
I looked into pgAdmin 4 but havent found such command. 

pgAdmin 3 had buttons to select kill processes by database name but those disappeared in pgAdmin 4.

How to find which users are using database and forcibly disconnect them ?

Andrus.



Re: Forcibly disconnect users from one database

From
Adrian Klaver
Date:
On 4/10/20 1:20 PM, Andrus wrote:
> Hi!
> 
> Postgres 12 does not allow to drop database if it is in use. DROP 
> DATABASE throws error:
> 
> postgres@template1 ERROR:  database "mydb" is being accessed by other users
> postgres@template1 DETAIL:  There is 1 other session using the database.
> postgres@template1 STATEMENT:  DROP DATABASE "mydb"
> 
> How to disconnect all users from database?
> Using
> /etc/init.d/postgresql restart
> disconnects users from all databases. How to disconnect users from one 
> database only ?
> I looked into pgAdmin 4 but havent found such command.
> pgAdmin 3 had buttons to select kill processes by database name but 
> those disappeared in pgAdmin 4.
> 
> How to find which users are using database and forcibly disconnect them ?

Find backends:

https://www.postgresql.org/docs/12/monitoring-stats.html#PG-STAT-ACTIVITY-VIEW

Kill backends:

https://www.postgresql.org/docs/12/functions-admin.html#FUNCTIONS-ADMIN-SIGNAL

> 
> Andrus.
> 
> 


-- 
Adrian Klaver
adrian.klaver@aklaver.com