개요
- 서버에서 실행되는 SQL 쿼리문을 기록하는 general_query_log 설정이 되어있는 경우 해당 로그파일의 적재와 관리에 대한 가이드입니다.
- 일반적인 운영환경에서 디버깅용으로 사용하되, 로그파일의 크기에 의한 디스크 용량 부하를 유의하십시오.
임시로 활성화하는 경우 ( 실시간 )
-
mariadb 접속
1. 로그 활성화 SET GLOBAL general_log = ON; 2. 로그 저장 방식 결정 (FILE 또는 TABLE) SET GLOBAL log_output = 'FILE'; 3. 디버깅 후 비활성화 SET GLOBAL general_log = Off;
로그파일 적재 설정 ( 영구 설정 )
-
/etc/my.cnf.d/server.cnf 파일 설정
[mariadb] # 일반 쿼리 로그 활성화 general_log = 1 # 로그 파일 저장 경로 (원하는 경로로 지정 가능) general_log_file = /var/log/mysql/mariadb-general.log # 로그 저장 방식 log_output = FILE
로테이션 설정 ( 영구 설정 )
-
적재 설정만하면 로그파일이 한 개의 파일에 지속적으로 적재되어 유지관리가 힘들어짐
-
1일 단위 파일분리 및 삭제 주기 등 설정
-
/etc/logrotate.d/mariadb 파일 내 수정
/var/log/mariadb/general_query.log { daily # 매일 실행 rotate 3 # 3일치 로그 보관 후 삭제 missingok # 로그 파일이 없어도 에러 미발생 notifempty # 내용이 없으면 순환하지 않음 compress # 구버전 로그 압축 (.gz) delaycompress # 최근 로그 하나는 압축 제외 (사용 중일 수 있으므로) sharedscripts postrotate # 로그 분할 후 MariaDB에 새 파일 쓰라고 신호 보냄 /usr/bin/mariadb-admin flush-logs endscript }