데이터베이스 운영중 myisam type의 테이블이나 데이터에 오류,에러 발생시 이를 점검하고 복구하는 유틸리티이다.
테이블을 안전하게 유지, 보수하고 싶다면 주기적으로 myisamchk 를 실행하여 상태를 검사해보는 것이 좋다.
myisamchk 유틸리티를 이용하여 데이터 파일의 상태를 보거나 체크할 때는 상관없지만 데이터
파일을 복구하려 할 때는 반드시 MySQL 서버를 종료한 상태에서 실행해야 한다.
만약 MySQL 서버를 종요할 수 없는 피치못할 상황이라면 테이블에 Lock 를 건 다음 myisamchk
유틸리티를 실행하도록 한다.
MySQL 의 bin 디렉토리를 보면 perror 라는 유틸리티를 찾을 수 있다. 이 유틸리티는 MySQL 의
- 에러 코드에 대한 메시지를 확인할 때 사용할 수 있는 유틸리티이다. 사용 방법은 다음과 같다.
= myisamchk [옵션] <테이블명>
myisamchk 유틸리티에서 사용할 수 있는 옵션은 크게 Global 옵션, 체크 옵션, 복구 옵션 그리고
그 밖의 옵션으로 나눌 수 있다. Global 옵션은 유틸리티에서 전반적으로 사용되는 일반적인
옵션이고, 체크 옵션은 테이블의 상태를 체크하는데 사용하는 옵션이며, 복구 옵션은 테이블을
복구할 때 사용하는 옵션이다. 먼저 Global 옵션은 다음과 같다.
Global 옵션 | 설명
-#, --debug=... | Debug 로그를 출력한다.
-?, --help | 도움말을 출력한다.
-s, --silent | 침묵 모드로 작동한다. 검사도중 에러가 발생했을 때만 출력한다.
-v, --verbose | 상세 정보를 출력한다.
-V, --version | 버전을 출력한다.
-w, --wait | 테이블에 Lock 이 걸려있으면 기다린다.
체크 옵션 | 설명
-c, --check |테이블에 오류가 없는지 체크한다.
-e, --extend-check | 테이블에 오류가 없는지 좀 더 세밀하게 검사한다.
| 오류를 수정했음에도 불구하고 계속해서 오류가 발생할때
| 이 옵션을 부여한다. 대신 체크 속도는 느리다.
-F, --fast |이블이 제대로 닫혀있는지 체크한다.
-C, --check-only-changed | 마지막으로 체크한 이후로 변경된 테이블만 체크한다.
-f, --force | 체크중 에러가 발견되면 에러 테이블을 표시해놓고
| 바로 복구를 시작한다.
-i, --information | 체크된 테이블의 정보를 출력한다.
-m, --medium-check | --extend-check 체크보다 빠르게 체크한다.
| 일반적으로 많이 사용한다.
-U, --update-state | 에러가 발견된 테이블을 표시해둔다.
-T, --read-only | 에러가 발견되어도 테이블에 표시해두지 않는다.
복구 옵션 | 설명
-B, --backup | .MYD 파일의 백업 파일을 '<파일명>-<생성시간>.BAK' 라는
| 이름으로 만든다.
--correct-checksum | 테이블의 checksum 정보를 바로 잡는다.
-D, --data-file-length=<크기> | 복구후 다시 생성할 데이터 파일의 최대 크기를 지정한다.
-e, --extend-check | 로우 단위로 세밀하게 복구한다. 따라서 많을 쓰레기 값들이
| 생길 수 있다. 파일이 완전히 손상된 경우에만 이 옵션을
| 사용하도록 한다.
-f, --force | 기존의 임시 파일을 덮어쓴다.
-r, --recover | 거의 모든 것을 복구한다.
-n, --sort-recover | 임시 파일이 매우 크더라도 강제적으로 정렬해서 복구한다.
-o, --safe-recover | 예전 버전의 복구 방법을 사용하여 복구한다. -r 보다는
| 느리지만 -r 옵션에서 복구할 수 없는 몇가지 것들을
| 복구할 수 있다.
--character-sets-dir=... | 문자셋 디렉토리를 지정한다.
--set-characater-set=<문자셋> | 문자셋을 지정한다.
-q, --quick | 데이터 파일(.MYD) 를 제외하고 빠르게 복구한다.
그 밖의 옵션 | 설명
-a, --analyze | 키의 분포를 분석한다. 몇몇 JOIN 을 빠르게 할 것이다.
-d, --description | 테이블의 정보를 출력한다.
-S, --sort-index | 인덱스 블록을 정렬한다. 다음 값 읽기(read-next) 의 속도를 향상시킨다.
-R, --sort-records | 인덱에 따라 로우를 정렬한다. SELECT 와 ORDER BY 속도를 향상 시킬
=<인덱스 번호> | 수 있다. <인덱스 번호> 는 SHOW INDEX FROM <테이블명> 으로
| 알 수 있다.
댓글 없음:
댓글 쓰기