MySQL은 데이터베이스를 효율적으로 관리하고 유지보수할 수 있도록 다양한 관리 및 유틸리티 프로그램을 제공합니다. 이 글에서는 각 유틸리티의 역할과 사용 방법을 자세히 살펴보겠습니다.
ibd2sdi
ibd2sdi는 InnoDB 테이블스페이스 파일에서 직렬화된 딕셔너리 정보(SDI, Serialized Dictionary Information)를 추출하는 유틸리티입니다. SDI 데이터는 모든 영구(persistent) InnoDB 테이블스페이스 파일에 포함되어 있으며, 이 도구는 서버가 실행 중일 때뿐만 아니라 서버가 오프라인 상태일 때도 사용할 수 있습니다.
innochecksum
innochecksum은 InnoDB 파일의 체크섬(checksum)을 출력하는 도구입니다. InnoDB 테이블스페이스 파일을 읽어 모든 페이지에 대한 체크섬을 계산하고, 계산된 값과 저장된 체크섬을 비교하여 불일치가 발생하면 손상된 페이지로 보고합니다.
원래는 정전 이후 테이블스페이스 파일의 무결성을 빠르게 검증하기 위해 개발되었지만, 파일 복사 후 무결성 확인 용도로도 활용할 수 있습니다.
실행 방법은 다음과 같습니다.
shell> innochecksum [options] file_name
myisam_ftdump
myisam_ftdump는 MyISAM 테이블의 FULLTEXT 인덱스 정보를 출력하는 유틸리티입니다. MyISAM 인덱스 파일을 직접 읽기 때문에 해당 테이블이 위치한 서버 호스트에서 실행해야 합니다.
서버가 실행 중이라면 사용 전에 반드시 FLUSH TABLES 문을 먼저 실행해야 합니다.
실행 방법은 다음과 같습니다.
shell> myisam_ftdump [options] tbl_name index_num
myisamchk
myisamchk는 데이터베이스 테이블에 대한 정보를 확인하거나, 테이블을 검사·복구·최적화하는 데 사용되는 도구입니다.
이 유틸리티는 MyISAM 테이블, 즉 데이터와 인덱스를 .MYD 및 .MYI 파일로 저장하는 테이블에서만 작동합니다. 파티션된 테이블에는 myisamchk를 사용할 수 없습니다.
실행 방법은 다음과 같습니다.
shell> myisamchk [options] tbl_name ...
myisamlog
myisamlog는 MyISAM 로그 파일의 내용을 처리하는 유틸리티입니다. 이러한 로그 파일을 생성하려면 서버를 시작할 때 --log-isam=log_file 옵션을 지정해야 합니다.
실행 방법은 다음과 같습니다.
shell> myisamlog [options] [file_name [tbl_name] ...]
myisampack
myisampack은 MyISAM 테이블을 압축하는 유틸리티입니다. 테이블 내 각 컬럼을 개별적으로 압축하는 방식으로 작동하며, 일반적으로 데이터 파일 크기를 40%에서 70%까지 줄여줍니다.
실행 방법은 다음과 같습니다.
shell> myisampack [options] file_name ...
mysqlbinlog
MySQL 서버의 바이너리 로그(binary log)는 데이터베이스 내용에 대한 변경 사항을 기술하는 '이벤트'를 담고 있는 파일들로 구성됩니다. 서버는 이러한 파일을 바이너리 형식으로 작성하므로, 사람이 읽을 수 있는 텍스트 형식으로 내용을 확인하려면 mysqlbinlog 유틸리티를 사용해야 합니다.
실행 방법은 다음과 같습니다.
shell> mysqlbinlog [options] log_file ...
mysqldumpslow
MySQL 슬로우 쿼리 로그(slow query log)에는 실행에 오랜 시간이 걸리는 쿼리에 대한 정보가 기록됩니다. mysqldumpslow는 이러한 슬로우 쿼리 로그 파일을 분석하여 내용을 요약해 주는 유틸리티로, 성능 병목 지점을 파악하는 데 유용하게 활용됩니다.
실행 방법은 다음과 같습니다.
shell> mysqldumpslow [options] [log_file ...]