Post

Database 삭제 시, 세션 문제 해결 방법

PostgreSQL에서 데이터베이스를 Drop 하려는데, 해당 DB와 연결된 세션 관련 문제로 아래와 같은 에러가 발생할 수 있습니다.

1
2
ERROR:  database "{$database}" is being accessed by other users
DETAIL:  There is 1 other session using the database.

이 경우 해당 데이터베이스와 연결된 모든 세션을 선택하여 강제 종료하는 방법을 이용할 수 있습니다.
해당 방법은 PostgreSQL v9.2 이상에서만 지원하는 방법입니다.

1
2
3
SELECT pg_terminate_backend(pg_stat_activity.pid)
FROM pg_stat_activity
WHERE pg_stat_activity.datname = '{$database}';

이후, 데이터베이스 Drop을 시도하면 성공적으로 수행될 것 입니다.

1
DROP DATABASE {$database}

감사합니다.

This post is licensed under CC BY 4.0 by the author.