Database

[PostgreSQL] DATABASE 강제 DROP

비번변경 2024. 1. 11. 17:02

개요

Database를 복구하다가 문제가 생겼었는데, 복구한 데이터베이스를 지우고 다시 복구하려고 한다. 그런데 DATABASE에 연결한 사용자가 있어 DROP에 실패했다. 강제로 DATABASE를 삭제하는 방법을 적어둔다.

 

 

DROP DATABASE

데이터베이스를 삭제할 때는 DROP 문을 사용한다. DROP 문은 되돌릴 수 없기 때문에 신중하게 사용해야 한다.

DROP DATABASE db_name 
DROP DATABASE IF EXISTS db_name

IF EXESTS를 사용하면 삭제할 데이터베이스가 존재하지 않아서 발생하는 오류를 방지할 수 있다.

 

 

데이터베이스 강제 삭제

삭제를 수행하는 사용자가 삭제할 데이터베이스를 사용하고 있는 경우도 포함해서, 삭제하려고 하는 데이터베이스에 연결된 세션이 있으면 오류가 발생하면서 실패한다.

만약 사용자 본인이 삭제할 데이터베이스에 접속했다면 다른 데이터베이스에 접속하면 된다. 만약 다른 사람이 삭제할 데이터베이스에 접속한 상태라면 FORCE 옵션을 주어서 강제로 삭제할 수 있다.

DROP DATABASE db_name WITH ( FORCE );

다만 연결을 종료할 권한이 필요하기 때문에 사용자의 권한이 적절하지 않으면 실패한다.

 

 

참고 문서

https://www.postgresql.org/docs/current/sql-dropdatabase.html

 

 

728x90