에러로그

MyISAM 스토리지 엔진

책너두 6기 13일차

백은빈, 이성욱의 Real MySQL8.0 1권 p.142 ~ p.149

내용정리

04 아키텍처

4.2.13 InnoDB와 MyISAM, MEMORY 스토리지 엔진 비교

예전에는 MyISAM 스토리지 엔진을 많이 썼지만 이제는 도태되고 있고, 이후 버전에서는 사라질 전망이다.

4.3 MyISAM 스토리지 엔진 아키텍처

4.3.1 키캐시

InnoDB의 버퍼 풀과 비슷한 역할을 한다. 인덱스 만을 대상으로 작동한다.

4.3.2 운영체제의 캐시 및 버퍼

MyISAM 테이블의 데이터 읽기나 쓰기 작업은 운영체제의 디스크 읽기 또는 쓰기 작업으로 요청된다.

4.3.3 데이터 파일과 프라이머리 키(인덱스) 구조

프라이머리 키에 의한 클러스터링 없이 데이터 파일이 힙(Heap) 공간 처럼 활용된다. 키값과 무관하게 Insert 되는 순서대로 저장된다.

4.4 MySQL 로그 파일

MySQL의 상태나 부하를 일으키는 원인을 쉽게 찾아 해결할 수 있다.

4.4.1 에러 로그 파일

실행 중 발생하는 에러나 경고 메시지가 출력되는 로그파일이다.

4.4.1.1 MySQL이 시작하는 과정과 관련된 정보성 및 에러 메시지

MySQL의 설정 파일을 변경하거나 DB가 베정상적으로 종료된 이후 다시 시작할 때 항상 확인해야 한다.

4.4.1.2 마지막으로 종료할 때 비정상적으로 종료된 경우 나타나는 InnoDB의 트랜잭션 복구 메시지

비정상, 강제 종료 후 다시 시작되면 미완료 트랜잭션을 정리하고 디스크에 기록되지 못한 데이터를 다시 재처리하여 기록한다. 이 과정이 메시지로 출력되는지 확인해야 한다.

4.4.1.3 쿼리 처리 도중에 발생하는 문제에 대한 에러 메시지

주기적으로 에러 로그 파일을 확인하여 발견해야 한다.

4.4.1.4 비정상적으로 종료된 커넥션 메시지(Aborted connection)

이 메시지가 많이 누적되어 있는 경우가 있는데, 클라이언트 애플리케이션에서 정상적으로 접속 종료를 하지 못하고 프로그램이 종료된 경우 메시지가 발생한다. 애플리케이션의 종료 로직을 검토해보자.

4.4.1.5 InnoDB의 모니터링 또는 상태 조회 명령(show engine innodb status 같은)의 결과 메시지

상대적으로 큰 메시지를 에러 로그 파일에 기록한다. 모니터링 사용 후에는 비활성화해서 에러 로그 파일이 커지지 않게 하자.

4.4.1.6 MySQL의 종료 메시지

아무도 모르게 종료되었거나 재시작되었을 때 에러 로그 파일에서 종료되면서 출력한 메시지를 확인하는 것이 유일한 방법이다.

4.4.2 제너럴 쿼리 로그 파일(제너럴 로그 파일, Genenral log)

서버에서 실행되는 쿼리로 어떤 것들이 있는지 목록으로 검토해 볼때, 쿼리 로그를 활성화하여 쿼리 로그 파일로 기록하면 된다.


읽고 나서

잘못된 것을 고치는 가장 첫번째 방법은 에러 메시지 확인하기!