2013년 1월 3일 목요일

mysql 4.0 이하에서 bin 로그 제거

bin 로그 제거

mysql 버젼 : mysql Ver 12.22 Distrib 4.0.26, for pc-linux-gnu (i686)

my.cnf 에 아래의 옵션을 주면 되지만, MySQL 5.0.3 이상부터 지원.
expire_logs_days = 7
크론에 아래와 같이 등록 하여 사용하라고 했는 데, syntex 에러 발생
00 00 * * 7 /usr/local/mysql/bin/mysql -uroot -pxxxxx -e "PURGE BINARY LOGS BEFORE date_sub(now(), interval 7 day)";
출처

BEFORE 변수는 MySQL 4.1 (으)로부터 이용 가능하게 되어 있다고 함.;;
출처

할 수 있는 건, 아래 꺼 밖에 없음
PURGE MASTER LOGS TO 'mysql-bin.010';
스크립트 작성.
bin 로그 10개만 남기고 나머지 다 삭제.

 
#!/bin/sh
bin_log_path="/usr/local/mysql/data/"
bin_log_name="mysql-bin"
bin=${bin_log_path}${bin_log_name}

max_bin_index=`ls ${bin}.* | awk -F. '{print $2}' | sort -n | tail -1`
del_index=`expr ${max_bin_index} - 10`
if [ -f ${bin}.${del_index} ]
then
echo "${bin_log_name}.${del_index} 파일 존재"
echo "${bin_log_name}.${del_index} 이전 파일 제거"
/usr/local/mysql/bin/mysql -uroot -p패스워드 -e "PURGE MASTER LOGS TO '${bin_log_name}.${del_index}'";
fi

댓글 없음:

댓글 쓰기