1. bin로그 설정
log-bin=/var/log/mysql/mysql-bin.log binlog_cache_size=2M max_binlog_size=100M expire_logs_days=30
2. binarylog 쿼리 저장
1) binlog 텍스트로 변환
# mysqlbinlog [binlog 경로] > [파일이름]. sql
ex)
# mysql-bin.000001 > [파일명].sql
2) 특정 db 의 지정된 날짜동안의 binlog 텍스트 변환
# mysqlbinlog –database=[db명] –start-date=”[yyyy-mm-dd 시간:분:초]” –stop-date=”[yyyy-mm-dd 시간:분:초]” [binlog 경로] > [파일명].sql
ex)
# mysqlbinlog –database=itsyou –start-date=”2019-01-01 12:00:00″ –stop-date=”2019-01-03 19:00:00″ mysql-bin.000002 > test.sql
3) 특정 db의 지정된 포지션 사이의 binlog 텍스트 변환
* start position 은 정확한 포지션을 지정해주어야함
# mysqlbinlog –databse=[db명] –start-position=[num] –stop-position=[num] [binlog 경로] > 파일명.sql
ex)
# mysqlbinlog –databse=itsyou –start-position=1 –stop-position=10000 /usr/local/mysql/data/mysql-bin.000003 > recover.sql
3. binlog 를 통한 복구
* 복구 전 기존 데이터는 백업 후 진행할 것
* 복구할 binlog 의 sql 파일이 db나 table 을 생성하는것부터 시작할 경우 (ex. create table / create database) 해당 table 이나 database 삭제 후 진행해야함
* 삭제된 db 나 table 을 복구할 경우 sql 파일 내에 불필요한 쿼리는 주석 후 복구할 것