티스토리 뷰

Study/System

Mysql Binary Log 관리

pursh 2012. 10. 11. 18:00

Mysql은 기본적으로 바이너리 로그를 남긴다.

해당 파일은 복구시에도 사용할 수 있다.


my.cnf에 보면

log-bin=mysql-bin

을 주석처리 하지 않는다면 로그를 지속적으로 쌓을 것이다.


기본적으로 data 디렉터리에 쌓이는 것 같다.


필요치 않다면 해당 부분을 주석처리하면 된다.


복구할 때는


mysqlbinlog msyql-bin.000001 > bakcup.sql


형식으로해서 쿼리문으로 복구가 가능하다.


로그를 관리할려면 my.cnf에 아래와 같이 설정하면 된다.


binlog_cache_size      =  50M      # binlog cache 사이즈
max_binlog_size        =  500M    # bin로그 maximum 사이즈
expire_logs_days        = 3       # 로그 만료기간


바이너리 로그 리스트는


mysql> show binary logs;
mysql> show master logs;


해당 로그 파일을 삭제할 때는


mysql> purge master logs to 'mysql-bin.000010';


특정 일자기준으로 삭제할 때는


mysql> purge master logs before date_sub(CURRENT_DATE, INTERVAL 31 DAY);


my.cnf 설정 외에 환경변수를 수정해도 된다.


mysql>show variables;

에서 expire_logs_days를 보면 알 수 있다.


기본적으로는 0으로 되어 있어 삭제가 되지 않으나


mysql> set global expire_logs_days=7;

로 설정하면 7일동안 저장하고 삭제한다.

댓글