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
'RDB > MySQL' 카테고리의 다른 글
mysql 8.0 인증오류 - sqlstate[hy000] [2054] the server (0) | 2019.03.26 |
---|---|
xtrabackup 백업 및 복구 (0) | 2018.12.31 |
mysql 생성구문 (0) | 2018.05.09 |
SQL 튜닝 사례 (부재:Table Charset 표준 위배 사례) (0) | 2018.03.21 |
mysql online schema chage : gh-ost (0) | 2017.11.20 |