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;
번호 제목 글쓴이 날짜 조회 수
25 MySQL 설치 시 checking "LinuxThreads"… "Not found" 에러 발생 시 호스트웨이 2012.09.21 11309
24 [mysql] /tmp/mysql.sock이 없다고 DB접속이 안되는 경우 호스트웨이 2015.09.21 11170
23 Mysql DB 생성 및 사용자 추가 호스트웨이 2012.03.23 11144
22 MySQL Table 상태 확인, 복구 및 최적화 호스트웨이 2015.09.11 10891
21 MySQL 원격 접속이 이뤄지지 않는다면? 호스트웨이 2012.07.13 10736
20 chive – phpMyAdmin 보다 좋은 ! 호스트웨이 2012.05.18 10621
19 mysql replication을 이용한 DB 백업 동기화 에러 발생시 (slave db 1062 error) 호스트웨이 2015.09.09 8981
18 MySQL 보안을 위한 전용관리계정으로 MySQL 관리하기 호스트웨이 2015.09.08 8956
17 [mysql] table 백업 호스트웨이 2015.09.21 7800
16 Client does not support authentication protocol requested by server 메시지 발생 시 호스트웨이 2012.10.18 7604
15 MYSQL 동시접속자수 늘리기 호스트웨이 2015.09.18 7316
14 [Oracle] 대량 자료 조회 Parallel 호스트웨이 2015.09.26 7239
13 mysql-5.5.x 에서 character-set 변경 호스트웨이 2012.12.07 7200
12 [MySQL] 쿼리 한 번으로 데이터베이스 용량 알아내기 file 호스트웨이 2012.11.16 7152
11 [mysql] 작은 용량의 파일 로드 속도가 느려진 경우 호스트웨이 2015.09.22 7104
10 MySQL에서 Query Cache 사용하기 호스트웨이 2012.12.20 7086
9 [MySQL] 무한정 늘어나는 log-bin 파일 줄이기 호스트웨이 2012.11.23 7054
8 MySQL DB 옵티마이저 사용법 호스트웨이 2015.09.18 6858
7 Mysql에서 log-slow-queries 로그 남기기 호스트웨이 2012.09.21 6811
6 phpmyadmin에서 'mcrypt 확장모듈을 불러올 수 없습니다' 에러 시 file 호스트웨이 2012.11.29 6657