MySQL 테이블에 Meta(.frm) 정보 이상으로 문제가 발생시 아래와 같은 절차로 복구를 진행합니다.

(메타 정보 이상시 해당 table open 불가 또는 tablespace 찾을수 없다고 표시)


1. mysql 유틸리티 실행하여 오류 수정여부 확인

   mysqlfrm --diagnostic  /tmp/test.frm

   1번 사항이 안될경우 2번부터 진행


2. 해당 테이블 생성 (다른 replicatoin 또는 백업 받은 데이터로부터 생성정보 추출)

   mysqlfrm ~~~~ or mysqldump 등등


3. 문제 테이블 삭제

   shell > "drop table test"


4. 해당 테이블 생성

   shell > source test.sql


5. 해당 테이블에 데이터파일(.ibd) 삭제

   2번에서 테이블 생성하면 빈껍데기에 .frm, .ibd가 생성 됨으로 불필요한 .ibd 파일을 아래명령어로 삭제

   shell> alter table test discard tablespace


6. 해당 테이블 데이터파일 백업본 Copy

   copy test.ibd_bak   test.ibd 


7. 해당 테이블 데이터 import

   shell> alter table test import tablespace


* 참고로 2번 사항이 동작하지 않을 경우 파라미터을 추가하여 재가동

  innodb_force_recovery = 1  

+ Recent posts