• MySQL매뉴얼
    • MySQL 5.6 매뉴얼
    • MySQL 5.1 매뉴얼
    • MySQL 5.0 매뉴얼
    • MySQL HA 매뉴얼
  • 기술문서
    • Xtrabackup 구성
    • 메모리 사용량 모니터링
  • 서비스
    • MySQL유지보수
    • MySQL라이선스
  • 온라인문의
  • 회사소개
  • → 목 록 (MySQL5.1 한글메뉴얼) [close]
  • 1. MySQL 5.1 Reference Manual
  • 2. Installing and MySQL 업그레이드하기
  • 3. 사용 설명서 (Tutorial)
  • 4. MySQL 프로그램 사용하기
  • 5. 데이터베이스 관리
  • 6. 리플리케이션
  • 7. 최적화 (Optimization)
  • 8. 클라이언트 및 유틸리티 프로그램
  • 1. 클라이언트 및 유틸리티 프로그램 개요
    2. innochecksum — 오프라인 InnoDB 체크섬 유틸리티
    3. my_print_defaults — 옵션 파일에 있는 옵션 출력하기
    4. myisam_ftdump — 풀-텍스트 (Full-Text) 인덱스 정보 출력하기
    5. myisamchk — MyISAM 테이블-관리 유틸리티
    1. myisamchk 일반 옵션
    2. myisamchk 체크 옵션
    3. myisamchk 복구 옵션
    4. 기타 myisamchk 옵션
    5. myisamchk 메모리 사용
    6. myisamlog — MyISAM 로그 파일 컨텐츠 출력하기
    7. myisampack — 압축된 읽기 전용 MyISAM 테이블 만들기
    8. mysql — MySQL 명령어-라인 툴
    9. mysqlaccess — 접속 권한 검사를 위한 클라이언트
    10. mysqladmin — MySQL 서버를 관리하기 위한 클라이언트
    11. mysqlbinlog — 바이너리 로그 파일을 처리하기 위한 유틸리티
    12. mysqlcheck — 테이블 관리 및 복구 프로그램
  • 9. 언어 구조 (Language Structure)
  • 10. 문자 셋 지원
  • 24. API 및 라이브러리
  • 25. Connectors

8.5. myisamchk — MyISAM 테이블-관리 유틸리티

 

8.5.1. myisamchk 일반 옵션

8.5.2. myisamchk 체크 옵션

8.5.3. myisamchk 복구 옵션

8.5.4. 기타 myisamchk 옵션

8.5.5. myisamchk 메모리 사용

 

myisamchk 유틸리티는 데이터 베이스 테이블 검사, 복구, 또는 최적화를 위한 정보를 가져온다.

 

myisamchk는 MyISAM 테이블과 함께 동작한다 (데이터 및 인덱스를 저장하기 위해 .MYD 및 .MYI 파일을 가지고 있는 테이블).

 

Caution

 

테이블 복구 연산을 실행하기 전에 테이블 백업을 만들도록 한다; 어떤 환경에서는 이러한 테이블 복구 연산으로 인해 데이터가 유실되기도 한다.

 

myisamchk를 다음과 같이 호출한다:

 

shell> myisamchk [options] tbl_name ...

 

options은 myisamchk을 어떻게 구동시킬지를 나타낸다. 옵션들에 대해서는 다음 섹션에서 설명하기로 한다. myisamchk --help을 호출하면 사용 가능한 옵션을 볼 수가 있다.

 

아무런 옵션을 사용하지 않으면, myisamchk은 디폴트로 테이블 검사만을 실행한다. 보다 많은 정보를 얻기 위해서 또는 myisamchk로 하여금 정확한 연산을 하도록 만들기 위해서는, 다음 섹션에서 설명하는 방식으로 옵션을 지정하도록 한다.

 

tbl_name은 여러분이 검사 또는 복구하고자 하는 데이터 베이스 테이블이다. 만일 여러분이 데이터 베이스 디렉토리가 아닌 다른 곳에서 myisamchk를 구동 시킨다면, 반드시 데이터 베이스 디렉토리 경로를 지정해 주어야 하는데, 그 이유는 myisamchk가 데이터 베이스 위치를 모르기 때문이다. 사실, myisamchk는 여러분이 작업을 하고 있는 파일이 데이터 베이스 디렉토리에 있는지에 대해서는 관여를 하지 않는다.

 

여러분은 데이터 베이스 테이블과 상응하는 파일을 복사해서 다른 위치에 저장한 후에 그곳에서 복구 연산을 실행할 수 있다.

 

여러분이 원하기만 한다면 myisamchk 명령어 라인에서 테이블 이름을 지정할 수가 있다. 또한 테이블의 인덱스 파일 (.MYI 접미사를 갖고 있는 파일)을 명명함으로써 하나의 테이블을 지정할 수가 있다. 이를 통해서 여러분은 *.MYI를 사용해서 디렉토리에 있는 모든 파일을 지정할 수 있게 된다. 예를 들면, 여러분이 데이터 베이스 디렉토리에 있다면, 아래와 같이 그 디렉토리에 있는 모든 MyISAM 테이블을 검사할 수가 있다:

 

shell> myisamchk *.MYI

 

만일 여러분이 데이터 베이스 디렉토리에 없다면, 그 디렉토리의 경로를 지정해 줌으로써 거기에 있는 모든 테이블을 검사할 수가 있다:

 

shell> myisamchk /path/to/database_dir/*.MYI

 

또한, 여러분은 MySQL 데이터 디렉토리 경로를 와일드 카드를 사용해서 지정해 주면 모든 데이터 베이스에 있는 모든 테이블까지도 검사를 할 수 있게 된다:

 

shell> myisamchk /path/to/datadir/*/*.MYI

 

모든 MyISAM 테이블을 쉽고 빠르게 검사할 수 있는 방법은 다음과 같다:

 

shell> myisamchk --silent --fast /path/to/datadir/*/*.MYI

 

만일 여러분이 모든 MyISAM 테이블을 검사해서 깨져 있는 (corrupted) 테이블을 복구하고자 한다면, 아래의 명령어를 사용하면 된다:

 

shell> myisamchk --silent --force --fast --update-state \

          --key_buffer_size=64M --sort_buffer_size=64M \

          --read_buffer_size=1M --write_buffer_size=1M \

          /path/to/datadir/*/*.MYI

 

이 명령어는 여러분이 64MB 이상의 메모리 여유가 있다는 가정하에 실행된 것이다.

 

Important

 

여러분이 myisamchk를 구동시키는 동안에는 다른 어떤 프로그램도 동일 테이블을 사용하지 않도록 해야 한다. 그렇지 않으면, 여러분이myisamchk를 구동 시킬 때, 아래와 같은 에러 메시지가 나오게 된다:

 

warning: clients are using or haven't closed the table properly

 

이 경고문은 여러분이 다른 프로그램(mysqld 서버와 같은)이 업데이트를 아직 끝마치지 않았거나 또는 올바르게 닫히지가 않은 테이블을 검사하고자 시도한다는 것을 의미하는 것이다.

 

만일 mysqld이 구동 중이라면, FLUSH TABLES를 사용해서 메모리에 아직 남아 있는 테이블 수정 내용을 우선 플러시 하도록 만들어야 한다. 그런 후에, myisamchk를 사용하는 동안에는 다른 어떤 프로그램도 그 테이블을 사용하지 못하도록 해야 한다. 이런 문제를 해소하기 위한 가장 쉬운 방법은 myisamchk를 사용해서 테이블을 검사하는 대신에 CHECK TABLE를 사용하는 것이다.

서울시 강남구 영동대로 602 6층  TEL: 02-6061-0006
주식회사 이노클러스터  등록번호 : 727-86-02261
Copyright © innocluster Co. ltd. all rights reserved