Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

대량의 데이터 삭제 후 MongoDB 저장 공간 줄이는 방법 – repairDatabase() 활용법

대량의 데이터를 삭제한 후에도 MongoDB의 디스크 저장 공간은 자동으로 반환되지 않습니다. 삭제된 데이터가 차지하던 공간은 내부적으로 재사용될 뿐, 운영체제 수준에서 실제 용량이 줄어들지 않기 때문입니다. 이럴 때 repairDatabase() 명령을 사용하면 불필요한 공간을 회수하여 저장 용량을 줄일 수 있습니다.

먼저 현재 사용 중인 데이터베이스가 무엇인지 확인해 보겠습니다. 여기서는 "test" 데이터베이스를 사용한다고 가정합니다.

> db;

위 쿼리를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Test

대량의 데이터 삭제 작업을 마친 후, 아래 명령을 실행하면 MongoDB의 저장 공간을 줄일 수 있습니다.

> db.repairDatabase()

명령이 정상적으로 완료되면 다음과 같은 출력이 표시됩니다.

{ "ok" : 1 }

"ok" : 1은 복구(repair) 작업이 성공적으로 수행되었음을 의미합니다. 실제로 위 쿼리를 적용한 후에는 아래 화면처럼 스토리지 사용량이 줄어든 것을 확인할 수 있습니다.

대량의 데이터 삭제 후 MongoDB 저장 공간 줄이는 방법 – repairDatabase() 활용법

참고: 최신 버전을 사용하는 경우

repairDatabase()는 MongoDB 4.4부터 지원이 중단(deprecated)되었으며, 이후 버전에서는 제거되었습니다. WiredTiger 스토리지 엔진 환경에서는 compact 명령이나 mongod --repair 옵션을 통해 유사하게 공간을 회수할 수 있습니다. 또한 복구 작업은 추가적인 디스크 여유 공간을 요구하고 완료까지 시간이 오래 걸릴 수 있으므로, 운영 환경에서는 반드시 백업 후 신중하게 실행하는 것이 좋습니다.