mysql에서 binary log 삭제 및 관리

| 2014년 9월 23일 | 0 Comments

사이트 접속이 않된다는 고객분이 있어 서버를 살펴보니, 디렉토리 공간을 100% 사용하고 있어 않된적이 있었습니다.

어떤 곳에 이렇게 용량을 많이 사용하나 확인을 해보니, mysql의 binary log가 매우 많이 쌓여 있는 상태였습니다.

 

binary log는 DB 상에서 업데이트가 되는 모든 쿼리들을 저장하는 로그입니다.

모든 업데이트 쿼리를 저장하기 때문에 주기적으로 지워주지 않는다면, 하드가 꽉차게 되서 웹사이트 운영등에 지장을 줄 수가 있습니다.

이럴때는, 파일에서 만료 기간을 설정하거나, 직접 삭제를 하면 됩니다.

 

만료 기간 설정 방법

로그의 만료기간을 설정하는 방법에는 두가지가 있습니다. 

(여기서는 만료기간을 5일로 설정해보겠습니다.)

첫번째는 my.cnf에 옵션 설정을 넣어주는 것입니다.  

vi 명령어로 etc 디렉토리에 있는 my.cnf 파일에 들어갑니다.

# vi /etc/my.cnf

my.cnf 파일에 들어갔다면, 다음 항목을 추가해줍니다.

expire_logs_days     = 5

두번째는 mysql에 접속을해서 설정하는 방법입니다. 

mysql에 접속을 합니다.

# mysql -u root -p

mysql에 접속을 했다면 다음 명령어를 입력합니다.

mysql> set global expire_logs_days=5;
Query OK, 0 rows affected (0.00 sec)

 

Binary log 삭제 방법

binary log 삭제방법으로는 직접 쌓이고 있는 디렉토리에가서 삭제할 수도 있지만, mysql에 들어가서 다음 명령어를 입력하면 더 쉽게 지울 수 있습니다.

(예를 들어 binary log가 000001부터 000020까지 있을때, 000020을 제외한 모든 로그를 삭제하고자 할 떄…)

# mysql -u root -p

mysql> purge master logs to ‘mysql-bin.000020’;

 

 

 

Category: LINUX

About the Author ()