백은빈, 이성욱 님의 "Real MySQL" 책을 정리한 포스팅 입니다.
1. 에러 로그 파일
- 실행되는 도중에 에러나 경고로 인해 출력되는 메시지 파일을 의미합니다.
- datadir에 .err 확장자로 생성됨
서버 시작 관련
변수명을 인식하지 못한 경우
특정 변수가 무시된 경우
트랜잭션 복구 메시지 (비정상적으로 종료된 경우)
재처리 작업 과정
- 서버가 비정상적으로 종료된 경우 재시작 시, 트랜잭션 복구를 시도함
완료되지 못한 트랜잭션을 정리
- 서버가 종료되기 전에 완료되지 못한 트랜잭션을 정리하여 데이터 무결성을 유지함
디스크 기록
- 서버가 정상적으로 재시작되었을 때, 복구하는 과정이 로그에 남음
쿼리 에러 메시지
쿼리 도중 발생하는 문제점이 기록
커넥션 메시지 (비정상적으로 종료된 경우)
클라이언트가 애플리케이션에 접속하지 못할 경우
- ex) 커넥션 갯수가 max_connect_errors 값이 넘어가면 연결 불가
상태 조회 명령의 결과 메시지
테이블 모니터링
SHOW TABLE STATUS
락 모니터링
SHOW ENGINE INNODB STATUS
InnoDB 스토어드 엔진 조회
종료 메시지
정상 종료될 경우
- "Received SHUTDOWN from user..." 라는 메시지 출력
비정상 종료될 경우
- ex) 세그먼테이션 폴트 시, 스택 트레이스와 같은 내용이 출력됨
2. 제너럴 쿼리 로그 파일
- MySQL에서 수행한 모든 쿼리를 기록하는 로그 파일
- 디버깅 용도로 사용되며, 쿼리 실행 내역을 추적할 때 유용
활성화
실행 중 활성화
SET GLOBAL general_log = 'ON';
- 시스템 변수 셋팅
- general_log: 제너럭 쿼리 로그 활성화 여부
- general_log_file: 쿼리 로그 파일의 경로
- log_output: 쿼리 로그를 파일에 저장할지 테이블로 저장할지 설정 (FILE / TABLE)
- 테이블
- mysql.general_log
MySQL 설정 파일에서 활성화
[mysqld]
general_log=1
general_log_file=/usr/local/var/mysql/general.log
log_output=FILE
- 설정 파일 수정하기 (my.cnf or my.ini)
3. 슬로우 쿼리 로그
- 실행 시간이 오래 걸린 쿼리만 기록하는 로그
- 쿼리 튜닝 및 DB 성능 최적화에 매우 유용함
활성화
실행 중 활성화
SET GLOBAL slow_query_log = 'ON';
SET GLOBAL long_query_time = 2; -- 2초 이상 걸리는 쿼리만 기록
- 시스템 변수 셋팅
- slow_query_log: 슬로우 쿼리 활성화 여부
- long_query_time: 해당 시간 이상으로 걸리는 쿼리만 로깅
- log_output: 슬로우 쿼리 로그를 파일로 할지 테이블로 할지 결정합니다.
- 테이블
- mysql.slow_log
MySQL 설정 파일에서 활성화
[mysqld]
slow_query_log=1
slow_query_log_file=/usr/local/var/mysql/slow_query.log # 로그 파일 경로
long_query_time=2 # 2초 이상 걸리는 쿼리만 기록
log_output=FILE # FILE(파일) 또는 TABLE(테이블 저장)
- 설정 파일 수정하기 (my.cnf or my.ini)
'Database > Mysql' 카테고리의 다른 글
[Real MySQL] 8-2. 인덱스 (0) | 2023.11.25 |
---|---|
[Real MySQL] 5-1. 트랜잭션과 잠금: 트랜잭션 (1) | 2023.11.24 |
[Real MySQL] 4-2. 아키텍쳐: InnoDB 스토리지 엔진 아키텍쳐 (0) | 2023.11.24 |
[Real MySQL] 4-1. 아키텍쳐: MySQL 엔진 아키텍쳐 (0) | 2023.11.23 |
[Real MySQL] 3. 사용자 및 권한 (1) | 2023.11.23 |