[mysql] DB서버 용량 확보

최대 1 분 소요

회사는 mysql DB를 사용한다.

여러 서비스가 붙어 있고 쓰지 않는 테이블, i/o가 빈번한 테이블 등등 여러 상태의 테이블들이 혼재 되어 있다.

이런 테이블들 중 로그성 테이블이 1Gb가 넘게 차지 하고있고,

백업되는 데이터까지 합치니 용량을 꽤나 차지 하고 있었다.

해당 테이블들의 데이터를 최근 며칠치만 남기고 전부 DELETE 해 봤지만 DB파일 사이즈 자체는 줄어들지 않아 검색을 해 보니 MySql은 추후 재사용을 위해서 DB파일의 사이즈를 줄이지 않는다고 한다.

방법이 없는것은 아니였다.

아래 명령어로 파일 크기자체를 줄일 수 있었다.

mysql> optimize table '테이블명';

DB가 이중화 되어있는 상태라 optimize명령을 사용할 때 심장이 쫄깃했지만

별다른 이슈 없이 사이즈를 줄일 수 있었다.

그 외에도 error.log또한 2Gb가 넘고, slow query log도 꽤나 큰 용량을 차지하고 있었다.

logrotate 써서 날짜별로 로그파일이 남도록 수정하고

기존 로그를 삭제하니 꽤나 많은 용량을 확보 할 수 있었다.

끝.