2012-01-18
mysqlbinlog 설정을 해놓으면 해당 mysql에서 great, alter, drop, insert, update, delete 와 같은 작업이 있을때마다 해당 쿼리문의 기록이 남는다.
즉 db에 변화를 주는 모든 작업들을 기록해놓기 때문에, 로그파일로 사용하거나, 해당 작업을 바탕으로 백업과 비슷하게 사용할수 있는 것이다.

설정 방법 : my.cnf 파일에 log-bin을 추가하고, mysql을 재시작
[mysqld] log-bin
my.cnf 파일을 찾아서 [mysqld]의 아래부분 아무곳에나 log-bin이라고 추가시켜 놓으면 된다.
my.cnf 파일은 사용자에 따라 위치에 차이가 있지만 필자의 경우엔 /etc/my.cnf에 위치해 있다.

자 이제 설정이 제대로 되었다면 어딘가에 mysqld-bin.000001이라는 이름의 파일이 생성되서 차곡차곡 기록이 쌓이고 있을것이다. 해당 파일의 이름과 위치는 사용자마다 차이가 있기 때문에 터미널을 열고 find / -name *-bin.* 이라고 쳐보면 해당 파일을 찾아낼수 있을것이다. 필자의 경우에는 /var/lib/mysql/mysqld-bin.000001 에 위치해 있었다.
파일의 000001이라는 것은 mysql을 재시작할때마다 파일이 새롭게 생기고 숫자도 증가할 것이다.

mysqlbinlog 사용방법 : 해당 파일은 바이너리로 되어 있기 때문에 변환시켜 사용
mysqlbinlog [binlog파일의 위치및 이름] >> [변환되어 생성될파일의 위치및 이름]
의 형식으로 변환시켜주면 된다. 필자의 경우는 터미널을 열고

usr/bin/mysqlbinlog /var/lib/mysql/mysqld-bin.000001 > /test/test.sql
처럼 사용하면 되는것이다. 마찬가지로 mysqlbinlog 파일이 보이지 않는다면 find로 찾아보기 바란다.

위의 설정과 사용방법은 기본적인 것들만 나열한 것이다. 좀더 자세한 mysqlbinlog에 대해서 알고 싶다면 mysqlbinlog --help 를 해보거나 아래의 링크를 참조해보기 바란다.
http://www.mysqlkorea.co.kr/sub.html?mcode=manual&scode=01&m_no=21560&cat1=8&cat2=272&cat3=0&lang=k