by visca구루비 [PL/SQL] [2023.09.13 15:25:17]
MySql을 사용중인데 테스트하다가 운영서버의 테이블을 개발서버인줄 알고 trancate 했네요;;
이거 살릴 방법이 있을까요??
mysql에 바이너리 로그가 설정되어있으면 아래 방법으로 복구해볼 수 있겠네요.
https://hudi.blog/mysql-pit-recover/
질문이 있습니다.
1. 해당 복구법은 기존에 실행된 쿼리 전체를 다시 재 실행하여 데이터를 복구하는 방법 인가요?
2. 그렇다면 관련 테이블이 아닌 다른 테이블에 사용된 쿼리도 함께 사용되는 건가요?
3. 로그 파일이 삭제되지 않았다는 가정하에 많은 시간이 지난(많은 쿼리를 사용한) db 에서의 복구는 해당 쿼리를 새로 돌리는 만큼의 시간이 필요한가요?
참고 링크를 가서 흥미있게 읽다보니 궁금증이 생겨 문의 드립니다.
@우주민님
넵 저도 검색하다 발견한 내용이라 테스트해본것은 아닙니다.
바이너리 로그에서 추출한 sql문을 실행하는 방식으로 보이네요.
해당 예제는 insert 문이 존재해서 복구가 가능한 건데요.
이미 있는 테이블을 그냥 truncate 로 날렸다면
이전 풀백업과 binlog 가 없는 이상 복구가 불가능 할 것 같습니다.
중요 테이블단위 덤프 백업은 매일 받아두는게 좋습니다.
글을 다시 보니 그러네요. 질문하신 분의 케이스에 적용하기에는 부족해보이네요.