카테고리 보관물: 서버 일반

서버 설정 및 서비스 활용 팁

mysqlbinlog 특정 테이블 특정날짜 시간 출력 옵션 사용법

OS 환경 : CentOS6.X 64bit

1. mysqlbinlog 사용 상황

고객사에서 2015-12-15 자정부터 2015-12-16 자정까지의 mysql 에서 처리된 쿼리를 요청하였다. 어떠한 명령어와 옵션을 이용하면 가능할까?

어쩌면 요청이 굉장히 단순한부분이지만 mysql 대한 기본 사용법을 인지하고있지 않으면 당황 할 수 있다.

2. mysqlbinlog 처리방법

리눅스 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년도에 작성된 자료이긴 하지만 지금까지도 사용되고 있을만큼 강력한 기능을 가지고 있다.