큰일났습니다.... 운영서버에 Table을 Truncate 했는데 살릴 방법이 없을까요? 0 5 2,130

by visca구루비 [PL/SQL] [2023.09.13 15:25:17]


MySql을 사용중인데 테스트하다가 운영서버의 테이블을 개발서버인줄 알고 trancate 했네요;;

이거 살릴 방법이 있을까요??

by pajama [2023.09.13 16:20:47]

mysql에 바이너리 로그가 설정되어있으면 아래 방법으로 복구해볼 수 있겠네요.

https://hudi.blog/mysql-pit-recover/


by 우주민 [2023.09.14 11:47:02]

질문이 있습니다.

 

1. 해당 복구법은 기존에 실행된 쿼리 전체를 다시 재 실행하여 데이터를 복구하는 방법 인가요?

2. 그렇다면 관련 테이블이 아닌 다른 테이블에 사용된 쿼리도 함께 사용되는 건가요?

3. 로그 파일이 삭제되지 않았다는 가정하에 많은 시간이 지난(많은 쿼리를 사용한) db 에서의 복구는 해당 쿼리를 새로 돌리는 만큼의 시간이 필요한가요?

 

참고 링크를 가서 흥미있게 읽다보니 궁금증이 생겨 문의 드립니다.


by pajama [2023.09.15 15:52:24]

@우주민님

넵 저도 검색하다 발견한 내용이라 테스트해본것은 아닙니다.

바이너리 로그에서 추출한 sql문을 실행하는 방식으로 보이네요.


by 띠엉이 [2023.09.15 14:38:44]

해당 예제는 insert 문이 존재해서 복구가 가능한 건데요. 

이미 있는 테이블을 그냥 truncate 로 날렸다면 

이전 풀백업과 binlog 가 없는 이상 복구가 불가능 할 것 같습니다. 

중요 테이블단위 덤프 백업은 매일 받아두는게 좋습니다. 


by pajama [2023.09.15 15:40:02]

글을 다시 보니 그러네요. 질문하신 분의 케이스에 적용하기에는 부족해보이네요.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입