IT/MySQL

Mysql Binary log(bin log).

당양부부34 2016. 7. 15. 16:08

Mysql 데이터를 좀 더 안정적으로 보호하기 위해선 바이너리 로그가 필수다.


my.cnf에 보면

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

혹은 Mysql 시작시에 --log-bin[=file_name] 을 사용


로그가 용량을 꽤 차지 하게 되므로, 주기적으로 데이터베이스를 백업 받고 바이너리 로그를 지워주는 것이 좋다.


복구할 때는

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일동안 저장하고 삭제한다.