2015년 10월 29일 목요일

[Mysql] bin log(mysql-bin) 관리

서버를 운영하다 보면
/usr 파티션이 100%되어 DB Connect이 안되는 등의 문제로 서비스가 중지되는 경우가 발생하곤 함.

주기적으로 서버에 접속해서 파티션이나 용량등을 체크해주는 경우가 가장 좋으나, 이런 경우가 빈번하게 발생(DB의 사용빈도가 높다거나..)하면 여간 번거로운게 아님.

해서 Mysql의 bin log를 관리할 수 있는 설정을 찾아봄.

Mysql의 bin log는 Mysql 쿼리를 수행하면서 쌓이는 로그로, 트렉젝션등을 하여 시점 복구 등에 사용되는 중요한 로그 파일 임.

bin log 설정 변경을 위해서는 my.cnf 즉 Mysql의 설정파일에 내용을 추가 또는 변경해야 함.

일반적으로 Mysql의 환경설정 파일이 /etc/my.cnf 에 위치한다고 가정하고
bin log 파일을 /home/backup/db 으로 저장 위치를 변경하는 것으로 설정을 변경 할 것이다.
만약 bin log 파일의 위치를 변경하지 않는다면, 저장 위치 설정은 수정안해도 무방함.

[root@server]# vi /etc/my.cnf

Mysql 설정 파일을 vi로 연 후에 [mysqld] 아래에

log-bin=/home/backup/db/mysql-bin   // 빈로그 저장 설정 및 저장할 디렉토리 지정
binlog_cache_size = 5M   // binlog 캐쉬 사이즈
max_binlog_size = 100M  // binlog 파일 최대 사이즈
expire_logs_days = 10   // log 보관 기간(일)
위 내용을 추가!!

1Line의 "log-bin=/home/backup/db/mysql-bin" 은
저장 위치는 "/home/backup/db" 이고
해당 디렉토리 아래에 mysql-bin.00000xxx 형식으로 binlog가 생성된다는 의미이다.

저장 완료 후 Mysql 재시작!!

한가지 더 유의 할 점!!

기존 bin log 디렉토리에서 다른 디렉토리로 저장 위치를 변경 할 경우에는

1. 해당 디렉토리에(로그가 새롭게 저장될 디렉토리) mysql-bin.index 파일을 생성해주어야
하며 => [root@server]# touch mysql-bin.index

2. 새롭게 생성되는 디렉토리에 아래와 같이 mysql 권한을 설정해줘야 한다
[root@server]# chown -R mysql:mysql 생성디렉토리


위의 사항을 수행하지 않으면, 아마도 Mysql 서비스가 Errcode: 13을 토해내면서 시작되지 않음.

댓글 없음: