문제점
고객사에서 2015-12-15 자정부터 2015-12-16 자정까지의 mysql 에서 처리된 쿼리를 요청하였다. 어떠한 명령어와 옵션을 이용하면 가능할까?
어쩌면 요청이 굉장히 단순한부분이지만 mysql bin log 명령어를 알고 있다면 쉽게 해결될 수 있다. 이것은 mysqlbinlog 특정시간부분만 특정날짜부분만 뽑아서 출력하면 된다.
mysqlbinglog 사용방법
리눅스 mysqlbinlog 라는 명령어를 이용하여 처리할수있다. 방법은 아래와 같다.
/usr/local/mysql/bin/mysqlbinlog --no-defaults --start-datetime="2015-12-15 00:00:00" --stop-datetime='2015-12-16 00:00:00' mysql-bin.000053 > /root/binlog/bin.sql
mysqlbinlog 실행파일 위치를 파악하고, 위의 –no-defaults 옵션과 –stat-datetime 옵션을 이용하여 결과를 얻어낼수 있다. 물론 mysqlbinlog 옵션만으로도 결과를 얻어낼 수 있다.
옵션에 대해서 간단히 설명을 하면, 아래와 같다.
–no-defaults : 어떤 옵션 파일에서 기본 옵션을 읽지 않는다
–start-datetime : 특정날짜 시작 지점이다.
–stop-datetime : 특정날짜 중지 지점이다.
위와 같은 방법으로 해결될 수 있다. 리눅스 환경에서 mysqlbinlog 명령어를 굉장히 중요하다. 삭제된 데이터베이스(DB)데이터를 복구할 수 있는 기능이기 때문이다.
위 자료는 2015년도에 작성된 자료이긴 하지만 지금까지도 사용되고 있을만큼 강력한 기능을 가지고 있다.