DB에 레코드가 많이 쌓여 테이블 파일의 용량이 증가하는 것도 문제지만,
binary log를 초기 세팅대로 방치하면 금방 HDD가 꽉 차게 된다.
# ll -h total 22G drwx------ 2 mysql mysql 4.0K Feb 5 10:37 acclog -rw-r----- 1 mysql mysql 112K Feb 5 19:09 localhost.localdomain.err -rw-rw---- 1 mysql mysql 5 Feb 5 19:09 localhost.localdomain.pid drwx------ 2 mysql mysql 4.0K Feb 5 10:15 mysql -rw-rw---- 1 mysql mysql 1.1G Feb 15 07:13 mysql-bin.000174 -rw-rw---- 1 mysql mysql 1.1G Feb 15 07:24 mysql-bin.000175 -rw-rw---- 1 mysql mysql 1.1G Feb 15 07:36 mysql-bin.000176 -rw-rw---- 1 mysql mysql 1.1G Feb 15 07:47 mysql-bin.000177 -rw-rw---- 1 mysql mysql 1.1G Feb 15 07:59 mysql-bin.000178 -rw-rw---- 1 mysql mysql 1.1G Feb 15 08:16 mysql-bin.000179 -rw-rw---- 1 mysql mysql 1.1G Feb 15 08:31 mysql-bin.000180 -rw-rw---- 1 mysql mysql 1.1G Feb 15 08:42 mysql-bin.000181 -rw-rw---- 1 mysql mysql 1.1G Feb 15 08:54 mysql-bin.000182 -rw-rw---- 1 mysql mysql 1.1G Feb 15 09:05 mysql-bin.000183 -rw-rw---- 1 mysql mysql 1.1G Feb 15 09:17 mysql-bin.000184 -rw-rw---- 1 mysql mysql 1.1G Feb 15 09:29 mysql-bin.000185 -rw-rw---- 1 mysql mysql 1.1G Feb 15 09:40 mysql-bin.000186 -rw-rw---- 1 mysql mysql 1.1G Feb 15 09:52 mysql-bin.000187 -rw-rw---- 1 mysql mysql 1.1G Feb 15 10:04 mysql-bin.000188 -rw-rw---- 1 mysql mysql 334M Feb 15 11:43 mysql-bin.000189 -rw-r----- 1 mysql mysql 418 Feb 15 10:04 mysql-bin.index drwx------ 2 mysql mysql 4.0K Feb 5 10:15 test
|
data 디렉토리(configure에 따라 다름) 내의 파일들을 보면 binary log가 많이 생성된 것을 알 수 있다.
파일을 rm 명령어로 직접 지우지 말고 mysql 콘솔에서 지우는 것이 바람직하다.
mysql> show binary logs; +------------------+------------+ | Log_name | File_size | +------------------+------------+ | mysql-bin.000174 | 1073742003 | | mysql-bin.000175 | 1073742050 | | mysql-bin.000176 | 1073741968 | | mysql-bin.000177 | 1073742039 | | mysql-bin.000178 | 1073741908 | | mysql-bin.000179 | 1073742024 | | mysql-bin.000180 | 1073742027 | | mysql-bin.000181 | 1073741959 | | mysql-bin.000182 | 1073741883 | | mysql-bin.000183 | 1073741988 | | mysql-bin.000184 | 1073741999 | | mysql-bin.000185 | 1073741927 | | mysql-bin.000186 | 1073742098 | | mysql-bin.000187 | 1073742018 | | mysql-bin.000188 | 1073742083 | | mysql-bin.000189 | 349569498 | +------------------+------------+ 16 rows in set (0.00 sec)
|
mysql 콘솔에서는 위 명령으로 확인 가능.
mysql> purge master logs to 'mysql-bin.000186'; Query OK, 0 rows affected (0.91 sec) mysql> show binary logs; +------------------+------------+ | Log_name | File_size | +------------------+------------+ | mysql-bin.000186 | 1073742098 | | mysql-bin.000187 | 1073742018 | | mysql-bin.000188 | 1073742083 | | mysql-bin.000189 | 349742255 | +------------------+------------+ 4 rows in set (0.00 sec)
|
위 명령어에서 binary 로그 이름을 지정하면 해당 파일 이전의 파일들을 모두 삭제한다.
mysql> set global expire_logs_days=2; Query OK, 0 rows affected (0.00 sec) mysql> SHOW VARIABLES LIKE '%expire%'; +------------------+-------+ | Variable_name | Value | +------------------+-------+ | expire_logs_days | 2 | +------------------+-------+ 1 row in set (0.00 sec)
|
그리고 binary 로그를 저장할 주기를 설정한다.
시스템 사고가 발생해도 근시일 내에 확인할 수 있거나 특별히 백업해 분석할 것이 아니라면 2일 정도면 충분할 것이다.
출처 : http://whiterussian.tistory.com/entry/binary-log-%EC%A0%95%EB%A6%AC-%EC%82%AD%EC%A0%9C-%EC%A3%BC%EA%B8%B0-%EC%84%A4%EC%A0%95