본문 바로가기

Dev./Error.

[Error] DETAIL: There are 2 other sessions using the database.

728x90

PostgreSQL을 사용하고 있는데 DROP DATABASE를 해야하는 상황에서 발생한 에러이다.

 

전체 에러의 의미는 해당 데이터베이스에 다른 사용자 혹은 세션이 엑세스 하고 있다는 뜻이다.  일반적으로 데이터베이스에는 여러 사용자가 접근할 수 있지만 데이터베이스는 하나의 세션에 의해 동시에 접근되는 것을 허용하지 않는다. 즉  현재 데이터베이스에 이미 두 개의 세션이 존재하고 있다는 의미이다.

 

데이터베이스를 삭제하기 위해서는 활성화 된 세션을 먼저 강제로 종료시켜주어야 한다.

 

select pg_terminate_backend(pid)
from pg_stat_activity
where datname = 'DB명';

 pg_terminate_backend
----------------------
 t
 t

해당 SQL 쿼리는 pg_stat_activity 시스템 뷰에서 데이터베이스를 사용하는 모든 세션의 프로세스 ID(PID)를 가져온 뒤 pg_terminate_backend() 함수를 호출시켜 해당 세션을 종료한다.

 

그다음 DROP DATABASE 하면 인사도 없이 사라진다. 잘가라!!!

728x90
반응형