Loading...
MySQL 9.5 Reference Manual 9.5의 6.6.4 myisamchk — MyISAM Table-Maintenance Utility의 한국어 번역본입니다.
아래의 경우에 피드백에서 신고해주신다면 반영하겠습니다.
감사합니다 :)
6.6.4.1 myisamchk General Options 6.6.4.2 myisamchk Check Options 6.6.4.3 myisamchk Repair Options 6.6.4.4 Other myisamchk Options 6.6.4.5 Obtaining Table Information with myisamchk 6.6.4.6 myisamchk Memory Usage
myisamchk 유틸리티는 데이터베이스 테이블에 대한 정보를 가져오거나, 이를 검사(check), 복구(repair), 최적화(optimize)합니다.
myisamchk는
MyISAM 테이블(데이터와 인덱스를 저장하기 위해
.MYD 및 .MYI 파일을 가지는 테이블)과 함께 동작합니다.
MyISAM 테이블을 검사하고 복구하기 위해 CHECK TABLE
및 REPAIR TABLE 구문을 사용할 수도 있습니다.
Section 15.7.3.2, “CHECK TABLE Statement” 및
Section 15.7.3.5, “REPAIR TABLE Statement”를 참조하십시오.
파티션된 테이블에 대해 myisamchk를 사용하는 것은 지원되지 않습니다.
주의
테이블 복구 작업을 수행하기 전에 테이블의 백업을 만드는 것이 가장 좋습니다. 특정 상황에서는 이 작업이 데이터 손실을 초래할 수 있습니다. 가능한 원인에는 파일 시스템 오류가 포함되지만 이에 국한되지는 않습니다.
myisamchk는 다음과 같이 호출합니다:
1myisamchk [options] tbl_name ...
_options_는
myisamchk에 대해 원하는 작업을 지정합니다. 이들은 다음 절에서 설명합니다.
myisamchk --help를 호출하여 옵션 목록을 얻을 수도 있습니다.
옵션을 지정하지 않으면, myisamchk는 기본 동작으로 단순히 테이블을 검사합니다. 더 많은 정보를 얻거나 myisamchk가 교정 작업을 수행하도록 지시하려면, 다음 설명에서와 같이 옵션을 지정하십시오.
_tbl_name_은 검사하거나 복구하려는 데이터베이스 테이블입니다.
데이터베이스 디렉터리 이외의 위치에서
myisamchk를 실행하는 경우,
데이터베이스 디렉터리의 경로를 지정해야 합니다. 이는
myisamchk가 데이터베이스가 어디에 위치하는지 전혀 알지 못하기 때문입니다. 실제로
myisamchk는 작업 중인 파일이 데이터베이스 디렉터리에 위치하는지 여부에는 개의치 않습니다. 데이터베이스 테이블에 해당하는 파일을 다른 위치로 복사한 다음 그곳에서 복구 작업을 수행할 수 있습니다.
원한다면 myisamchk 명령줄에 여러 테이블을 지정할 수 있습니다. 또한 인덱스 파일(접미사 .MYI
를 가진 파일)의 이름을 지정하여 테이블을 지정할 수도 있습니다. 이렇게 하면
*.MYI 패턴을 사용하여 디렉터리 내의 모든 테이블을 지정할 수 있습니다. 예를 들어, 데이터베이스 디렉터리에 있는 경우, 해당 디렉터리 내의 모든
MyISAM 테이블을 다음과 같이 검사할 수 있습니다:
1myisamchk *.MYI
데이터베이스 디렉터리에 있지 않은 경우, 디렉터리의 경로를 지정하여 그곳의 모든 테이블을 검사할 수 있습니다:
1myisamchk /path/to/database_dir/*.MYI
MySQL 데이터 디렉터리에 대한 경로와 함께 와일드카드를 지정하여 모든 데이터베이스의 모든 테이블을 검사할 수도 있습니다:
1myisamchk /path/to/datadir/*/*.MYI
모든 MyISAM 테이블을 빠르게 검사하는 권장 방법은 다음과 같습니다:
1myisamchk --silent --fast /path/to/datadir/*/*.MYI
모든 MyISAM 테이블을 검사하고 손상된 테이블을 복구하려면 다음 명령을 사용할 수 있습니다:
1myisamchk --silent --force --fast --update-state \ 2 --key_buffer_size=64M --myisam_sort_buffer_size=64M \ 3 --read_buffer_size=1M --write_buffer_size=1M \ 4 /path/to/datadir/*/*.MYI
이 명령은 64MB 이상의 여유 공간이 있다고 가정합니다. myisamchk의 메모리 할당에 대한 자세한 내용은 Section 6.6.4.6, “myisamchk Memory Usage”를 참조하십시오.
myisamchk 사용에 대한 추가 정보는 Section 9.6, “MyISAM Table Maintenance and Crash Recovery”를 참조하십시오.
주의
다른 프로그램이 _myisamchk_를 실행하는 동안 테이블을 사용하고 있지 않음을 반드시 보장해야 합니다. 이를 위한 가장 효과적인 방법은 myisamchk를 실행하는 동안 MySQL 서버를 종료하거나, myisamchk가 사용 중인 모든 테이블을 잠그는 것입니다.
그렇지 않으면 myisamchk를 실행할 때 다음과 같은 오류 메시지가 표시될 수 있습니다:
1warning: clients are using or haven't closed the table properly
이는 다른 프로그램(예: 아직 파일을 닫지 않았거나, 파일을 제대로 닫지 않고 비정상 종료되어
MyISAM 테이블 하나 이상이 손상될 수 있는
mysqld 서버)에서 업데이트된 테이블을 검사하려 한다는 의미입니다.
mysqld가 실행 중인 경우,
FLUSH TABLES를 사용하여
여전히 메모리에 버퍼되어 있는 테이블 변경 사항을 강제로 플러시해야 합니다.
그런 다음
myisamchk를 실행하는 동안 누구도 테이블을 사용하지 않도록 해야 합니다.
그러나 이 문제를 피하는 가장 쉬운 방법은
테이블을 검사할 때
myisamchk 대신
CHECK TABLE을 사용하는 것입니다.
Section 15.7.3.2, “CHECK TABLE Statement”를 참조하십시오.
myisamchk는 명령줄 또는 옵션 파일의
[myisamchk] 그룹에 지정할 수 있는 다음 옵션을 지원합니다. MySQL 프로그램에서 사용하는 옵션 파일에 대한 정보는
Section 6.2.2.2, “Using Option Files”를 참조하십시오.
Table 6.18 myisamchk Options
| Option Name | Description |
|---|---|
| --analyze | 키 값의 분포를 분석합니다 |
| --backup | .MYD 파일의 백업을 file_name-time.BAK으로 생성합니다 |
| --block-search | 주어진 오프셋의 블록이 속하는 레코드를 찾습니다 |
| --character-sets-dir | 문자 집합을 찾을 수 있는 디렉터리입니다 |
| --check | 테이블의 오류를 검사합니다 |
| --check-only-changed | 마지막 검사 이후 변경된 테이블만 검사합니다 |
| --correct-checksum | 테이블의 체크섬 정보를 수정합니다 |
| --data-file-length | (데이터 파일이 가득 찼을 때 데이터 파일을 재생성할 경우) 데이터 파일의 최대 길이입니다 |
| --debug | 디버깅 로그를 기록합니다 |
| --decode_bits | Decode_bits |
| --defaults-extra-file | 일반적인 옵션 파일에 추가로 지정된 옵션 파일을 읽습니다 |
| --defaults-file | 지정된 옵션 파일만 읽습니다 |
| --defaults-group-suffix | 옵션 그룹 접미사 값입니다 |
| --description | 테이블에 대한 일부 설명 정보를 출력합니다 |
| --extend-check | 데이터 파일에서 가능한 모든 행을 복구하려 시도하는 매우 철저한 테이블 검사 또는 복구를 수행합니다 |
| --fast | 제대로 닫히지 않은 테이블만 검사합니다 |
| --force | myisamchk가 테이블에서 오류를 찾으면 자동으로 복구 작업을 수행합니다 |
| --force | -r 또는 -o 옵션과 함께 사용하기 위해 이전 임시 파일을 덮어씁니다 |
| --ft_max_word_len | FULLTEXT 인덱스에 대한 최대 단어 길이입니다 |
| --ft_min_word_len | FULLTEXT 인덱스에 대한 최소 단어 길이입니다 |
| --ft_stopword_file | 내장 목록 대신 이 파일의 스톱워드를 사용합니다 |
| --HELP | 도움말 메시지를 표시하고 종료합니다 |
| --help | 도움말 메시지를 표시하고 종료합니다 |
| --information | 검사된 테이블에 대한 정보 통계를 출력합니다 |
| --key_buffer_size | MyISAM 테이블의 인덱스 블록에 사용되는 버퍼 크기입니다 |
| --keys-used | 어떤 인덱스를 업데이트할지 나타내는 비트 값입니다 |
| --max-record-length | myisamchk가 이를 보관할 메모리를 할당할 수 없는 경우, 주어진 길이보다 큰 행을 건너뜁니다 |
| --medium-check | --extend-check 작업보다 빠른 검사를 수행합니다 |
| --myisam_block_size | MyISAM 인덱스 페이지에 사용할 블록 크기입니다 |
| --myisam_sort_buffer_size | REPAIR를 수행하거나 CREATE INDEX 또는 ALTER TABLE로 인덱스를 생성할 때 인덱스 정렬 시 할당되는 버퍼입니다 |
| --no-defaults | 어떤 옵션 파일도 읽지 않습니다 |
| --parallel-recover | -r 및 -n과 동일한 기술을 사용하지만, 서로 다른 스레드를 사용하여 모든 키를 병렬로 생성합니다(beta) |
| --print-defaults | 기본 옵션을 출력합니다 |
| --quick | 데이터 파일을 수정하지 않고 더 빠른 복구를 수행합니다 |
| --read_buffer_size | 순차 스캔을 수행하는 각 스레드는 스캔하는 각 테이블에 대해 이 크기의 버퍼를 할당합니다 |
| --read-only | 테이블을 검사된 것으로 표시하지 않습니다 |
| --recover | 고유 키가 고유하지 않은 문제를 제외하고 거의 모든 문제를 해결할 수 있는 복구를 수행합니다 |
| --safe-recover | 모든 행을 순서대로 읽고, 발견된 행을 기반으로 모든 인덱스 트리를 업데이트하는 오래된 복구 방법을 사용하여 복구를 수행합니다 |
| --set-auto-increment | 새 레코드에 대한 AUTO_INCREMENT 번호 부여가 지정된 값에서 시작하도록 강제합니다 |
| --set-collation | 테이블 인덱스를 정렬하는 데 사용할 콜레이션을 지정합니다 |
| --silent | 조용한 모드 |
| --sort_buffer_size | REPAIR를 수행하거나 CREATE INDEX 또는 ALTER TABLE로 인덱스를 생성할 때 인덱스 정렬 시 할당되는 버퍼입니다 |
| --sort-index | 인덱스 트리 블록을 high-low 순서로 정렬합니다 |
| --sort_key_blocks | sort_key_blocks |
| --sort-records | 특정 인덱스에 따라 레코드를 정렬합니다 |
| --sort-recover | 임시 파일이 매우 커지더라도 키를 해결하기 위해 myisamchk가 정렬을 사용하도록 강제합니다 |
| --stats_method | MyISAM 인덱스 통계 수집 코드가 NULL을 어떻게 처리해야 하는지 지정합니다 |
| --tmpdir | 임시 파일을 저장하는 데 사용할 디렉터리입니다 |
| --unpack | myisampack으로 패킹된 테이블의 패킹을 해제합니다 |
| --update-state | 테이블이 언제 검사되었는지와 테이블이 크래시되었는지를 나타내는 정보를 .MYI 파일에 저장합니다 |
| --verbose | 자세한 모드 |
| --version | 버전 정보를 표시하고 종료합니다 |
| --wait | 종료하는 대신, 잠긴 테이블이 잠금 해제될 때까지 기다립니다 |
| --write_buffer_size | 쓰기 버퍼 크기입니다 |
| Option Name | Description |
|---|
6.6.3 myisam_ftdump — Display Full-Text Index information
6.6.5 myisamlog — Display MyISAM Log File Contents