7.5.1 이벤트 시간을 사용한 시점 복구
복구 시작 시간과 종료 시간을 지정하려면, mysqlbinlog에 --start-datetime
및 --stop-datetime
옵션을 DATETIME
형식으로 지정합니다. 예를 들어, 2005 년 4 월 20 일 오전 10시 정각에 큰 테이블을 삭제하는 SQL 문이 실행되었다고합니다. 테이블과 데이터를 복원하려면 전날의 백업을 복원하여 다음 명령을 실행합니다.
shell>mysqlbinlog --stop-datetime="2005-04-20 9:59:59" \
/var/log/mysql/bin.123456 | mysql -u root -p
이 명령은 모든 데이터를 --stop-datetime
옵션에 지정된 시간까지 복구합니다. 몇 시간 지나지 입력 된 잘못된 SQL 문을 감지하지 않으면 다음 발생한 활동도 복구 할 필요가있을 수 있습니다. 이에 따라 다음과 같이 시작 날짜에서 mysqlbinlog를 다시 실행할 수 있습니다.
shell>mysqlbinlog --start-datetime="2005-04-20 10:01:00" \
/var/log/mysql/bin.123456 | mysql -u root -p
이 명령은 오전 10:01에서 기록 된 SQL 문이 다시 실행됩니다. 이브의 덤프 파일의 복원과 2 개의 mysqlbinlog 명령의 조합은 오전 10:00 1 초 전까지의 모든 것과 오전 10:01에서 모든 것을 복원합니다.
시점 복구이 방법을 사용하려면 로그를 확인하고 명령에 지정하는 정확한 시간을 확인하십시오. 로그 파일의 내용을 실행하지 않고 표시하려면 다음 명령을 사용합니다.
shell> mysqlbinlog /var/log/mysql/bin.123456 > /tmp/mysql_restore.sql
그런 다음 텍스트 편집기에서 /tmp/mysql_restore.sql
파일을 열고 그것을 확인합니다.
mysqlbinlog 시간을 지정하여 특정 변경을 제외하는 것은 제외된다 문과 동시에 여러 문이 실행 된 경우 잘 작동하지 않습니다.