* 개요
: MariaDB에서 실행 되는 쿼리에 대해 특정 임계시간 이상 실행 된 쿼리에 대해 수집을 할 수 있다. 이는 튜닝 대상 쿼리를 탐지 하기 위함이다.
: 수집은 테이블에 적재하는 방식과 파일로 떨어뜨리는 방식이 있으나, 테이블에 적재하는 경우 쿼리문이 길어지면 로그 테이블을 조회하는 시간(네트워킹시간)이 너무너무너무너무 오래 걸리므로, 파일로 관리하는것이 훨씬 낫다!!
* 글로벌 config 확인
: 현재 설정된 상태 확인
show variables where Variable_name in ('slow_query_log','long_query_time','log_output','slow_query_log_file');
* 설정 변경
: 쿼리를 통한 글로벌 변수 설정 시 재기동시 반영이 안되므로, my.cnf에 설정 해 준다.
# 컨피그 파일 수정
vi /etc/my.cnf
[mysqld]
slow_query_log = 1
slow_query_log_file = /var/log/mysql-slow.log
long_query_time = 10
log_output = 'FILE' ## 이 부분을 TABLE로 바꿔주면 테이블에 적재 된다.
* 테스트
// 강제로 임계치 초과 쿼리 발생 (12초)
select sleep(12);
// 테이블에 적재 한 경우 수집된 쿼리 확인
select * from mysql.slow_log;
* 슬로우 로그 파일 관리
#!/bin/bash
rm -rf /TestService/mariadb/backup_storage/slow_log_*.log
target='TestServicebak_'$(date +%Y%m%d%H%M%S)
## 로그파일 백업
cp /TestService/mariadb/log/mysql-slow.log '/TestService/mariadb/backup_storage/slow_log_'$target'.log'
## 로그파일 비우기
cat /dev/null > /TestService/mariadb/log/mysql-slow.log
'Database' 카테고리의 다른 글
[MariaDB] MariaDB 레플리케이션 모니터링 쉘프로그램 (on Docker) (0) | 2023.03.08 |
---|---|
[MSSQL] 백업 및 로그 파일 축소 (0) | 2023.02.28 |
[MariaDB] MariaDB sqldump로 배치(Cron) 만들기 (0) | 2023.01.26 |
[MariaDB] Proxy SQL 셋팅 (on Docker) (0) | 2023.01.12 |
[MariaDB] Replication 구성 (on Docker) (0) | 2023.01.11 |