Linux DB

myisamchk 옵션들

2008.05.20 20:36

sylee 조회 수:23798

[ myisamchk 사용전 주의사항 ]
 
  - mysql 데몬을 stop 시킨후 이 유틸리티를 사용해야함.
  - mysql 데몬을 중지시킬수 없는 사항이라면 검사할 테이블에대한 rock을 걸고
    검사를 수행하여야만 검사도중에 발생할수있는 오류를 막을수있다.
  - 모든 작업은 항상 백업을 한후 작업을 수행하는것이 좋을것이다. 
 
옵션
 
   # myisamchk -s,--silent [table 명]
      -> 에러만 출력
     
   # myisamchk -v,--verbose [table 명]
    ->  -s 옵션보다 많은 정보를 출력
 
   # myisamchk -V
   ->    myisamchk 버젼을 표시

   # myisamchk -c,--check [table 명]
   ->  테이블의 에러를 check 함
 
   # myisamchk -e,--extend-check [table 명] 
   ->  테이블을 좀더 세밀하게 check 함, 일반적인 방법으로 error를 찾을수없을  경우 사용
 
   # myisamchk -F,--fast [table 명]
->    빠른게 테이블 check 한다.정교한 체크는 하지않느다.
 
   # myisamchk -C,--check-only-changed [table 명]
->     테이블을 check 하고,테이블을 check 이후의 상태로 변경한다.
 
   # myisamchk -f,--force [table 명]
->    테이블에 error에 있을경우 강재로 check 한다.
 
   # myisamchk -i,--information [table 명]
->    check한 결과의 정보를 통계화하여 보여준다.

   #myisamchk -m,--medium-check [table 명]
  ->  extend-check 옵션보다 check 속도가빠르며,99.9 % 의 에러을 찾을수있다.

Repair 옵션 
 
    #myisamchk -o -B,--backup [table 명] 
  ->    MYD파일을 백업한다. 형식은 [filename-time.BAK]의 파일이 생긴다.
    
    # myisamchk -e,--extend-check [table 명]
->    세부적인 파일까지 복구를해준다.일반적으로 아주 하찮은 에러까지 찾을수
    있다.하지만 자포자기의 상태가 아니고서는 이옵션을 사용하지 않는게 좋다.
 
    # myisamchk -f,-force [table 명]
->     이전것의 temporary file을 덥어쒸운다.
 
    # myisamchk -l,--no-symlinks [table 명]
->     심복릭 링크를 따르지않겠다는 옵션이다. 일반적으로 myisamchk 는symlink  points를 복구한다.
 
    # myisamchk -r,--recover [table 명]
->     unique key를 제외한 대부분를 복구한다.
 
    # myisamchk -n,--sort-recover [table 명]
->     sorting하면서 테이블을 복구한다. 심지어 temporary 파일과 같은 아주 큰
     파일역시 sorting하면서 복구한다.
 
   # myisamchk -o,--safe-recover [table 명]
->     -r 옵션보다 느리게 복구한다.그러나 좀더 섬세한 복구를 지원한다.
 
    # myisamchk -q,--quick [table 명]
->     테이터 파일의 수정없이 복구한다. 
 
기타 옵션
    # myisamchk -d,--description [table 명]
->     테이블에 대한 정보를 출력한다.
 
    # myisamchk -S,--sort-index [table 명]
->     index 블록을 sort한다.
 
    # myisamchk -R[index번호],--sort-records [table 명]
->     index 번호를 기준으로 인덱스를 정렬해준다. 
       
 
= 검사중 아래의 메시지가출력되면 해당테이블을 사용중이라는 의미이므로 테이블에 LOCK을 걸든가 데몬을 죽이고 나서 검사 및 복구를해야함.
 
     myisamchk: warning: 1 clients is using or hasn''t closed the table  
     properly 
 
< LOCK 걸기>
     
     myisamchk 는 테이블에대한 read 만 할수있으면 되기때문데 read 를 제외한
     모든것에 lock을 걸면된다.
     
     mysql> lock tables [table 명] READ ;
     mysql> flush tables ;
 
     flush tables 는 mysql이 테이블의 내용을 메모리에만 보관하고 실제 테이
     블파일에 기록을하지 않았을경우 실제 테이블파일에 기록하라는 의미이다 
   
<LOCK 풀기>
 
     mysql> unlock talbe;
 
<Myisamchk 로 복구를 위한 LOCK 걸기>
     
    서비스를 죽이지않고 복구를 해야할경우는 write lock를 걸어주면된다.
    복구는 write 를 해야하기때문에 write lock를 걸어줘야한다.
    
    mysql>lock tables [table명] write;
    mysql>flush tables;
 
<LOCK 풀기>
  
    mysql> unlock table;
번호 제목 글쓴이 날짜 조회 수
65 지정된 시간 이상 질의를 계속 하는 질의문 잡아내기 호스트웨이 2015.09.15 6041
64 MySQL Processlist 콘솔 상에서 확인 호스트웨이 2015.09.07 6060
63 [mysql] shell 자동화 호스트웨이 2015.09.20 6329
62 [mysql] sqli, pdo 설정 확인 호스트웨이 2015.09.22 6597
61 mysql 4.0 에서 4.1 다운그레이드 호스트웨이 2012.11.01 6616
60 phpmyadmin에서 'mcrypt 확장모듈을 불러올 수 없습니다' 에러 시 file 호스트웨이 2012.11.29 6658
59 Mysql에서 log-slow-queries 로그 남기기 호스트웨이 2012.09.21 6813
58 MySQL DB 옵티마이저 사용법 호스트웨이 2015.09.18 6858
57 [MySQL] 무한정 늘어나는 log-bin 파일 줄이기 호스트웨이 2012.11.23 7056
56 MySQL에서 Query Cache 사용하기 호스트웨이 2012.12.20 7088
55 [mysql] 작은 용량의 파일 로드 속도가 느려진 경우 호스트웨이 2015.09.22 7104
54 [MySQL] 쿼리 한 번으로 데이터베이스 용량 알아내기 file 호스트웨이 2012.11.16 7154
53 mysql-5.5.x 에서 character-set 변경 호스트웨이 2012.12.07 7200
52 [Oracle] 대량 자료 조회 Parallel 호스트웨이 2015.09.26 7244
51 MYSQL 동시접속자수 늘리기 호스트웨이 2015.09.18 7319
50 Client does not support authentication protocol requested by server 메시지 발생 시 호스트웨이 2012.10.18 7604
49 [mysql] table 백업 호스트웨이 2015.09.21 7801
48 MySQL 보안을 위한 전용관리계정으로 MySQL 관리하기 호스트웨이 2015.09.08 8956
47 mysql replication을 이용한 DB 백업 동기화 에러 발생시 (slave db 1062 error) 호스트웨이 2015.09.09 8981
46 chive – phpMyAdmin 보다 좋은 ! 호스트웨이 2012.05.18 10621