2011. 9. 30. 18:26

[InnoDB] 데이타 파일만 백업 후 복구시 유의사항

hot backup 으로 파일만 백업 했다가 복구 할때 기존에 테이블을 삭제한 후 복구하려 할때
table doesn't exists 라는 오류가 뜬다. 하지만 파일이 존재할 경우 show tables 할 경우 테이블이 존재하는 것 처럼 보이기 때문에 혼란이 생길 수 있다.

예)
member 테이블 hot backup -> member.frm, member.ibd  백업
그 후 drop table member 해서 테이블을 삭제한다.
파일을 기존 디렉토리에 다시 복사한다.
이 경우 show tables 를 하면 member 가 리스트되어 나오나 테이블에 관한 쿼리가 실행될 경우
table `member`  doesn't exists 라는 오류가 발생하게 된다.

테이블 정의에 관한 부분은 .frm 파일에 존재하지만 테이블 존재 유무에 관한 부분은 table space에 존재하기 때문에 삭제된(없는) 테이블을 사용하려 하기때문에 발생하는 오류로 보인다.

이 경우에는 동일한 테이블 명으로 테이블을 임의로 생성하고 frm, idb 파일을 다시 덮어 씌울 경우 정상적으로 동작하게 된다.