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
반응형