Skip to content

조회 수 8453 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄
[ myisamchk 란 ? ]

- DB 테이블에대한 오류 검사 및 오류 복구 유틸리티
- 버전 3.22.x : isamchk 유틸리티 사용
3.23.x : myisamchk 유틸리티 사용

[ myisamchk 사용전 주의사항 ]

- mysql 데몬을 stop 시킨후 이 유틸리티를 사용해야한다.
- mysql 데몬을 중지시킬수 없는 사항이라면 검사할 테이블에대한 rock을 걸고
검사를 수행하여야만 검사도중에 발생할수있는 오류를 막을수있다.
- 모든작업이 그렇듯이 항상 백업을 한후 작성을 수행하는것이 좋을것이다.

[ myisamchk 사용법 및 옵션 ]

- 해당 테이블이있는 디렉토리로 이동 ( 일반적으로 /usr/local/mysql/var 밑에
위치함 )

1.일반적인 검사

[root@angelsoma var]myisamchk [table 명]

Checking MYISAM file: [table 명]
Data records: 271 Deleted blocks: 0
- check file-size
- check delete-chain
- check index reference
- check record links
에러메시지가 없으면 테이블에 오류가 없다는것이다.

2.Global 옵션

[root@angelsoma var]myisamchk -s,--silent [table 명]

에러만 출력한다.

[root@angelsoma var]myisamchk -v,--verbose [table 명]

-s 옵션보다 많은 정보를 출력한다.

[root@angelsoma var]myisamchk -V

myisamchk 버젼을 표시한다.

3.Check 옵션

[root@angelsoma var]myisamchk -c,--check [table 명]

테이블의 에러를 check 한다.

[root@angelsoma var]myisamchk -e,--extend-check [table 명]

테이블을 좀더 세밀하게 check 한다. 일반적인 방법으로 error를 찾을수없
경우 사용하는 옵션이다.

[root@angelsoma var]myisamchk -F,--fast [table 명]

빠른게 테이블 check 한다.정교한 체크는 하지않느다.

[root@angelsoma var]myisamchk -C,--check-only-changed [table 명]

테이블을 check 하고,테이블을 check 이후의 상태로 변경한다.

[root@angelsoma var]myisamchk -f,--force [table 명]

테이블에 error에 있을경우 강재로 check 한다.

[root@angelsoma var]myisamchk -i,--information [table 명]

check한 결과의 정보를 통계화하여 보여준다.

Checking MyISAM file: insertdb
Data records: 8962 Deleted blocks: 0
- check file-size
- check key delete-chain
- check record delete-chain
- check index reference
- check data record references index: 1
Key: 1: Keyblocks used: 97% Packed: 0% Max levels: 2
Total: Keyblocks used: 97% Packed: 0%

- check record links
Records: 8962 M.recordlength: 241 Packed: 0%
Recordspace used: 100% Empty space: 0% Blocks/Record: 1.00
Record blocks: 8962 Delete blocks: 0
Record data: 2166962 Deleted data: 0
Lost space: 6796 Linkdata: 33634

User time 0.21, System time 0.02
Maximum resident set size 0, Integral resident set size 0
Non-physical pagefaults 92, Physical pagefaults 198, Swaps 0
Blocks in 0 out 0, Messages in 0 out 0, Signals 0
Voluntary context switches 0, Involuntary context switches 0

[root@angelsoma var]myisamchk -m,--medium-check [table 명]

extend-check 옵션보다 check 속도가빠르며,99.9 % 의 에러을 찾을수있다.

4.Repair 옵션

[root@angelsoma var]myisamchk -o -B,--backup [table 명]

- recovering (with sort) MyISAM-table 'insertdb.MYI'
Data records: 8962
- Fixing index 1

MYD파일을 백업한다. 형식은 [filename-time.BAK]의 파일이 생긴다.

[root@angelsoma var]myisamchk -e,--extend-check [table 명]

세부적인 파일까지 복구를해준다.일반적으로 아주 하찮은 에러까지 찾을수
있다.하지만 자포자기의 상태가 아니고서는 이옵션을 사용하지 않는게 좋다.

[root@angelsoma var]myisamchk -f,-force [table 명]

이전것의 temporary file을 덥어쒸운다.

[root@angelsoma var]myisamchk -l,--no-symlinks [table 명]

심복릭 링크를 따르지않겠다는 옵션이다. 일반적으로 myisamchk 는symlink
points를 복구한다.

[root@angelsoma var]myisamchk -r,--recover [table 명]

unique key를 제외한 대부분를 복구한다.

[root@angelsoma var]myisamchk -n,--sort-recover [table 명]

sorting하면서 테이블을 복구한다. 심지어 temporary 파일과 같은 아주 큰
파일역시 sorting하면서 복구한다.

[root@angelsoma var]myisamchk -o,--safe-recover [table 명]

-r 옵션보다 느리게 복구한다.그러나 좀더 섬세한 복구를 지원한다.

[root@angelsoma var]myisamchk -q,--quick [table 명]

테이터 파일의 수정없이 복구한다.

5.기타 옵션

[root@angelsoma var]myisamchk -a,--analyze [table 명]

key의 distribution 을 분석한다.
만약, distribution 을 산출하고 싶을경우에는 --verbose 나 --describe 라
는 옵션과 동행해서 확인할수있다.

[root@angelsoma var]myisamchk -d,--description [table 명]

테이블에 대한 정보를 출력한다.

[root@angelsoma var]myisamchk -S,--sort-index [table 명]

index 블록을 sort한다.

[root@angelsoma var]myisamchk -R[index번호],--sort-records [table 명]

index 번호를 기준으로 인덱스를 정렬해준다.



6.검사중 아래의 메시지가출력되면 해당테이블을 사용중이라는 의미이므로 테
이블에 LOCK을 걸든가 데몬을 죽이고 나서 검사 및 복구를해야함.

myisamchk: warning: 1 clients is using or hasn't closed the table
properly

7.LOCK 걸기

myisamchk 는 테이블에대한 read 만 할수있으면 되기때문데 read 를 제외한
모든것에 lock을 걸면된다.

mysql> lock tables [table 명] READ ;
mysql> flush tables ;

flush tables 는 mysql이 테이블의 내용을 메모리에만 보관하고 실제 테이
블파일에 기록을하지 않았을경우 실제 테이블파일에 기록하라는 의미이다

8.LOCK 풀기

mysql> unlock talbe;

9.Myisamchk 로 복구를 위한 LOCK 걸기

서비스를 죽이지않고 복구를 해야할경우는 write lock를 걸어주면된다.
복구는 write 를 해야하기때문에 write lock를 걸어줘야한다.

mysql>lock tables [table명] write;
mysql>flush tables;

10.LOCK 풀기

mysql> unlock table;

List of Articles
번호 제목 글쓴이 날짜 조회 수
86 초기 mysql root 패스워드 설정 및 비번 변경과 root 비번 잃어 버렸을 경우 변경하는 방법 ADMINPLAY 2008.10.30 11290
85 서버에서 mysql euckr과 utf8 같이 사용하기 ADMINPLAY 2010.05.03 12799
84 리눅스를 이용한 클러스터링 구축법 ADMINPLAY 2009.11.19 10754
83 리눅스 환경에서 mySql JDBC ADMINPLAY 2009.07.12 10356
82 [우분투] mysql, data 디렉토리 변경 file ADMINPLAY 2013.09.24 15191
81 [데이터베이스] [DBMS-MYSQL] "SHOW PROCESSLIST"시 state 종류 및 설명 ADMINPLAY 2012.01.16 15925
80 [MySQL] OPTIMIZE, TRUNCATE, 테이블복구, DB공간제한 l2zeo 2010.05.29 16489
» [MYSQL] Mysql 테이블 검사하기 & 복구하기 ADMINPLAY 2009.06.17 8453
78 [mysql] Manager of pid-file quit without updating fi[실패] ADMINPLAY 2009.06.29 13639
77 [MySQL 5.1.4] /bin/rm: cannot remove `libtoolT': No such file or directory ADMINPLAY 2012.01.16 18413
76 Starting MySQL.Manager of pid-file quit without updating fi[실패] ADMINPLAY 2010.01.28 19866
75 SSL을 이용한 MySQL 연결 ADMINPLAY 2009.03.03 10807
74 slow Query 조사 ADMINPLAY 2009.03.17 9054
73 skip-name-resolve ADMINPLAY 2009.05.22 9069
72 Redmine database를 복구 하고자 할 때 file l2zeo 2010.03.06 15597
71 phpMyAdmin 에서 icon 과 text 중 icon 만 보이게 하기 1 file l2zeo 2013.01.21 11852
70 PHP5와 MySQL5 연동시 한글 인코딩 문제 해결방법 (UTF-8으로의 변환) 1 l2zeo 2010.03.08 12581
69 mytop 으로 mysql 모니터링하기 ADMINPLAY 2009.06.25 8733
68 MySQL의 호스트 블럭킹 & max_connect_errors ADMINPLAY 2011.03.09 17769
67 MySQL에서 Query Cache 사용하기 ADMINPLAY 2011.03.18 15857
Board Pagination Prev 1 2 3 4 5 Next
/ 5

Copyright ADMINPLAY corp. All rights reserved.

abcXYZ, 세종대왕,1234

abcXYZ, 세종대왕,1234