mysql 바이너리 로그를 사용하여 drop 데이터베이스 명령에서 어떻게 복원합니까?
문제
"drop Database" 명령을 사용하여 삭제된 mysql 데이터베이스를 어떻게 복원할 수 있습니까?이러한 유형의 롤백을 가능하게 하는 바이너리 로그에 액세스할 수 있습니다.
해결책
문서가 형편없어요.DROP DATABASE가 복구 가능하다는 것을 암시하지만, 익숙하지 않은 이상한 조건에서만 가능합니다. http://dev.mysql.com/doc/refman/5.0/en/binary-log.html
Docs에 따르면 binlog는 주어진 참조 지점을 기반으로 실행되는 일련의 명령일 뿐입니다.따라서 "DROP DATABASE"를 수행했을 때 "아, 그가 데이터베이스를 삭제하는 중입니다. 혹시 모르니 지금 백업해야 합니다"라고 하는 대신 마지막 binlog에 "DROP DATABASE"만 기록했습니다.복구는 테이프를 거꾸로 재생하는 것만큼 간단하지 않습니다.
당신이 해야 할 일은 마지막으로 알려진 양호한 데이터베이스에서 데이터베이스를 복구하고 해당 복구 지점과 DROP 명령 사이에 발생한 binlog를 적용하는 것입니다.
http://dev.mysql.com/doc/refman/5.0/en/recovery-from-backups.html
어떤 binlog를 사용할지 결정하는 방법은 불분명합니다.
전체 파일 시스템을 백업하는 것보다 더 좋은 것은 없습니다.그리고 최소한 이를 참고할 수 있어야 합니다.
다른 팁
데이터베이스 백업이 없으면 운이 좋지 않습니다. 떨어지다데이터베이스 작성은 영구적입니다.
백업이 있다고 가정하면 바이너리 로그에는 해당 백업 이후 발생한 내용이 보관됩니다.mysqlbinlog 유틸리티를 사용하면 다음과 같은 작업을 수행할 수 있습니다.
mysqlbinlog the_log_file > update.sql
하지만 다시 실행하고 싶지 않은 항목(예: drop 데이터베이스 문)을 제거하려면 해당 파일을 편집해야 할 수도 있습니다.
행운을 빌어요!
백업도 파티도 없습니다.
그래서 나는 대답할 것이다:
다시는 이러한 상황에 처하지 않으려면 매우 간단하고 매우 강력한 automysqlbackup을 설치하십시오(Linux를 사용하는 경우).
sudo apt-get 설치 automysqlbackup
그것을 구성하십시오 :
sudo nano /etc/default/automysqlbackup
그런 다음 콘텐츠를 dropbox, ubuntu 또는 이와 유사한 장치에 자동으로 업로드하십시오.
그럼 행복하게 살아요 :)
Kent Fredric의 답변을 보완하기 위해 drop database
데이터베이스 생성 이후 바이너리 로깅을 사용하는 경우 명령.