MYSQL DB복구강좌myisamchk 2편
작성자 정보
- 웹관리자 작성
- 작성일
컨텐츠 정보
- 7,307 조회
- 0 추천
- 목록
본문
MYSQL DB복구강좌myisamchk 2편<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />
ㅇ 제작자 : 리눅스포털(www.superuser.co.kr) 수퍼유저코리아 <?xml:namespace prefix = st2 ns = "urn:schemas-microsoft-com:office:smarttags" /><?xml:namespace prefix = st1 ns = "urn:schemas:contacts" />박성수
ㅇ 본강좌의 자세한 정보 : http://www.superuser.co.kr/linuxcommandbible/ |
----------------- 목 차 -------------------
1 : MYSQL의 깨진 테이블파일 복구를 위한 myisamchk(isamchk) 개론
2 : MYSQL 테이블파일의 이상유무 점검하기
3 : MYSQL 테이블 점검시 이상발견시만 알려주기
4 : MYSQL의 테이블 점검(복구)시 가능한 상세하게 메시지 출력하기
5 : MYSQL의 테이블 이상유무 점검시 결과를 상세히 종합하여 보여주기
6 : MYSQL 의 특정테이블 이상유무를 가장 정밀하게 점검하기
7 : 정형적인 방법으로 MYSQL의 깨진 테이블파일 복구하기
8 : MYSQL의 깨진 테이블파일 안전모드로 복구하기
9 : MYSQL 테이블이 완전히 깨졌을 때의 최후의 복구방법
10 : myisamchk(isamchk)로 테이블파일 복구가 되지 않을 경우에는
2 : MYSQL 테이블파일의 이상유무 점검하기
MYSQL의 테이블 점검(복구)유틸리티인 myisamchk를 이용하여 특정 테이블의 이상유무를 점검할 수 있습니다. 테이블의 이상유무를 가장 간단히 점검하려면 myisamchk사용시 아무런 옵션없이 그냥 테이블파일만 지정해 주시면 됩니다.
여기서 예로들고 있는 실제 데이터들의 위치는/usr/local/mysql/data/papa/으로 가정하겠습니다. 실제 필자가 테스트로 사용하고 있는 데이터베이스명이 papa이며, papa라는 데이터베이스의 테이블파일이 존재하고있는 위치가 /usr/local/mysql/data/papa/이기 때문입니다.
그리고 앞서 말씀드린바와 같이 MYSQL의 복구 유틸리티인 myisamchk의 위치는 /usr/local/mysql/bin/myisamchk임을 꼭 기억하시고 다음 설명을 보시기 바랍니다.
아래는 myisamchk의 점검대상인 papa데이터베이스의 테이블파일들을 ls명령어로 확인한 것입니다.
[root@file bin]# pwd /usr/local/mysql/bin [root@file bin]# [root@file bin]# ls -l ../data/papa/ 합계 56 -rw-rw---- 1 mysql mysql 2652 2월 12 23:20 Demo_Domain.MYD -rw-rw---- 1 mysql mysql 2048 2월 12 23:23 Demo_Domain.MYI -rw-rw---- 1 mysql mysql 8940 1월 6 11:27 Demo_Domain.frm -rw-rw---- 1 mysql mysql 28 1월 6 11:27 Demo_DomainAdmin.MYD -rw-rw---- 1 mysql mysql 2048 1월 7 00:51 Demo_DomainAdmin.MYI -rw-rw---- 1 mysql mysql 8598 1월 6 11:27 Demo_DomainAdmin.frm -rw-rw---- 1 mysql mysql 0 1월 6 11:27 Demo_DomainDrop.MYD -rw-rw---- 1 mysql mysql 1024 1월 6 11:27 Demo_DomainDrop.MYI -rw-rw---- 1 mysql mysql 8626 1월 6 11:27 Demo_DomainDrop.frm [root@file bin]# |
다음은 myisamchk를 이용하여 /usr/local/mysql/data/papa/에 위치해 있는 테이블 인덱스파일(*.MYI)의 이상유무를 간단히 점검한 예입니다. 즉, Demo_Domain.MYI파일의 이상유무를 가장 간단한 방법으로 점검한 예입니다.
[root@file bin]# pwd /usr/local/mysql/bin [root@file bin]# [root@file bin]# ./myisamchk ../data/papa/Demo_Domain.MYI
Checking MyISAM file: ../data/papa/Demo_Domain.MYI Data records: 31 Deleted blocks: 0 - check file-size - check key delete-chain - check record delete-chain - check index reference - check data record references index: 1 - check record links [root@file bin]# |
테이블파일의 이상유무를 점검할 때에는 -c라는 옵션을 사용하셔도 동일한 점검을 하실 수 있습니다. 다음은 -c옵션을 사용하여 Demo_Domain.MYI파일의 이상유무를 점검한 예입니다.
[root@file bin]# ./myisamchk -c ../data/papa/Demo_Domain.MYI
Checking MyISAM file: ../data/papa/Demo_Domain.MYI Data records: 31 Deleted blocks: 0 - check file-size - check key delete-chain - check record delete-chain - check index reference - check data record references index: 1 - check record links [root@file bin]# |
참고로 -c옵션 대신에 --check옵션을 사용하셔도 됩니다.
3 : MYSQL 테이블 점검시 이상발견시만 알려주기
MYSQL의 테이블복구 유틸리티인 myisamchk로 테이블파일을 점검(복구)하다보면 가끔씩 불필요한 메시지로 짜증날 때가 있습니다. 이때 -s옵션을 사용하시면 에러발생시에만 (only print errors) 에러내용을 출력하므로 불필요한 메시지는 출력되지 않습니다.
다음 예는 Demo_Domain.MYI파일의 점검을 하면서 에러발견시에만 메시지를 출력하고 그외에는 아무런 메시지도 출력하지 않도록하기 위하여 -s옵션(silent)을 사용한 것입니다.
[root@file bin]# pwd /usr/local/mysql/bin [root@file bin]# [root@file bin]# ./myisamchk -s ../data/papa/Demo_Domain.MYI [root@file bin]# |
참고로 -s옵션 대신에 --silent옵션을 사용하셔도 됩니다.
4 : MYSQL의 테이블 점검(복구)시 가능한 상세하게 메시지 출력하기
MYSQL의 복구 유틸리티인 myisamchk를 이용하여 테이블파일의 점검(복구)를 할 때에 -s옵션과는 반대로 -v옵션(verbose)을 사용하시면 가능한 상세한 메시지를 출력해 줍니다.
아래의 예는 Demo_Domain.MYI라는 테이블 인덱스파일을 myisamchk로 점검할 때에 가능한 자세한 메시지를 출력하기 위하여 -v옵션을 사용한 것입니다.
[root@file bin]# pwd /usr/local/mysql/bin [root@file bin]# [root@file bin]# ./myisamchk -v ../data/papa/Demo_Domain.MYI
Checking MyISAM file: ../data/papa/Demo_Domain.MYI Data records: 31 Deleted blocks: 0 - check file-size - check key delete-chain block_size 1024: - check record delete-chain No recordlinks - check index reference - check data record references index: 1 - check record links [root@file bin]# |
참고로 -v옵션 대신에 --verbose를 사용하셔도 됩니다.
5 : MYSQL의 테이블 이상유무 점검시 결과를 상세히 종합하여 보여주기
MYSQL의 테이블 복구유틸리티인 myisamchk로 특정 테이블파일을 점검한 결과를 가장 상세하게 종합하여 보여주는 옵션이 -i입니다. 즉, -i옵션을 사용하여 특정 테이블의 이상유무를 점검하면 테이블의 에러사항을 종합적으로 점검하여 그 결과를 상세히 보여줍니다.
아래의 예는 myisamchk를 이용하여 Demo_Domain.MYI파일의 이상유무를 점검한 결과입니다.
[root@file bin]# pwd /usr/local/mysql/bin [root@file bin]# [root@file bin]# ./myisamchk -i ../data/papa/Demo_Domain.MYI Checking MyISAM file: ../data/papa/Demo_Domain.MYI Data records: 31 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: 18% Packed: 0% Max levels: 1 Total: Keyblocks used: 18% Packed: 0%
- check record links Records: 31 M.recordlength: 81 Packed: 0% Recordspace used: 99% Empty space: 0% Blocks/Record: 1.00 Record blocks: 31 Delete blocks: 0 Record data: 2521 Deleted data: 0 Lost space: 20 Linkdata: 111
User time 0.01, System time 0.00 Maximum resident set size 0, Integral resident set size 0 Non-physical pagefaults 27, Physical pagefaults 185, Swaps 0 Blocks in 0 out 0, Messages in 0 out 0, Signals 0 Voluntary context switches 0, Involuntary context switches 0 [root@file bin]# |
위의 결과를 보시는 바와 같이 지금까지의 점검결과 중 그 결과를 가장 상세하게 종합하여 출력하고 있다는 것을 아실 수 있습니다.
참고로 -i옵션은 --information을 사용하셔도 됩니다.
6 :
관련자료
-
이전
-
다음