DB관련/MySQL

[펌]mysql 깨진 테이블 복구하기

saltdoll 2008. 7. 14. 10:51
반응형

## 데이터베이스 복구

 

- 복구 유틸리티

1. 복구대상 인덱스 테이블이  *.ISM 파일 형식이면 isamchk 사용
2. 복구대상 인덱스 테이블이  *.MYI 파일 형식이면 myisamchk 사용

해당 유틸리티 사용시에는 mysql 종료 후 사용할 것


- 복구 시 사용되는 데이터베이스 관련 파일 위치

1. /var/lib/mysql/db명에 위치

2. 각 테이블 하나에 3개의 파일이 생성되어 해당 테이블의 데이터가 실제로 저장

 *.MYD : 실제 데이터가 저장되는 데이터 파일
 *.MYI : 테이블의 인덱스 정보를 저장하는 인덱스 파일
 *.frm : 테이블의 구조가 저장되는 스키마 파일


- 이상 유무 점검 방법

# myisamchk  -s /var/lib/mysql/test.MYI  //점검결과를 간략히 출력
# myisamchk  -v /var/lib/mysql/test.MYI  //점검결과를 상세히 출력
# myisamchk  -i /var/lib/mysql/test.MYI  //점검결과를 상세히 종합하여 출력

- 깨진 테이블 복구하기

# myisamchk  -rv /var/lib/mysql/test.MYI  //
# myisamchk  -o /var/lib/mysql/test.MYI  // r옵션보다는 안전모드로 복구, 속도는 느리다
                                            r옵션으로 복구하지 못하는 내용도 복구 가능

# myisamchk  -er 또는 -eo /var/lib/mysql/test.MYI  // 테이블이 완전히 깨진 최후의 복구방법


- myisamchk로 복구되지 않을 경우

1. frm 파일로 인해 복구가 되지 않는 경우

- MYI, MYD 파일의 원본 백업
- mysql 접속 후 create 문을 이용하여 테이블 생성
- myisamchk를 통해 복구 시도

2. MYI 파일로 인해 복구가 되지 않는 경우

- MYD, frm 파일의 원본을 백업
- mysql 접속 후 delete 구문을 통해 해당 테이블의 모든 레코드를 삭제
- mysql 종료 후 백업한 MYD, frm 파일을 원위치로 복사 후 myisamchk 시도

 

출처: http://refe.tistory.com/107

반응형
도움이 되셨다면 하트모양의 "♡ 공감"을 눌러주시면 큰 격려가 됩니다.
(로그인하지 않으셔도 가능)