본문 바로가기
서버인프라/데이터베이스

MariaDB SlowQuery Log 설정

by techwold ted 2022. 12. 6.

늘 mariadb slowquery 설정을 하다가 변경된거 같아서 기록을 남기게 되었습니다.

예전에는 ON, OFF로 컨피그에 넣었던거 같은데

찾아보니 enable_slow_query_log 를 추가 하는 방식도 있더라구요, 근데 예전처럼 아래와 같이 추가 하여도 잘 되긴 합니다.

slow_query_log         = 1
enable_slow_query_log
slow_query_log_file    = /var/log/mysql/mariadb-slow.log
long_query_time        = 3
log_slow_verbosity     = query_plan,explain
log-queries-not-using-indexes
systemctl restart mariadb

이제 마리아DB 재시작을 해주고 설정이 잘 되었는지 확인해 봅시다.

 

1. slowquery 상태 확인

   - 아래와 같이 ON 상태로 변경 된 것을 확인 했습니다. 그리고 로그 파일이 생성 되었는지도 확인 해 봐야겠지요?

   - 아래와 같이 잘 생성 된것 역시 확인 되었습니다

MariaDB [(none)]> show variables like 'slow_query_%';
+---------------------+---------------------------------+
| Variable_name       | Value                           |
+---------------------+---------------------------------+
| slow_query_log      | ON                              |
| slow_query_log_file | /var/log/mysql/mariadb-slow.log |
+---------------------+---------------------------------+

root@test-db:/etc/mysql/mariadb.conf.d# ls -al /var/log/mysql/mariadb-slow.log
-rw-rw---- 1 mysql adm 404 Dec  6 19:26 /var/log/mysql/mariadb-slow.log

 

2. 그리고 slowquey time도 10에서 3으로 변경했으니 확인해 보겠습니다.

MariaDB [(none)]> show global variables like 'long_query_time%';
+-----------------+----------+
| Variable_name   | Value    |
+-----------------+----------+
| long_query_time | 3.000000 |
+-----------------+----------+
1 row in set (0.001 sec)

 

이렇게 하면 변경은 완료 된 것이니 다들 혹시 변경하신다면 위와 같이 하시면 되고

다른 방법은 set global로 변경이 가능 합니다. 프로세스 재실행이 불가한 경우 어떻게 하는지도 한번 알아 보도록 하겠습니다.

이번에는 반대로 변경하도록 하겠습니다.

slow_query_log 는 OFF로 변경하고 long_query_time은 10으로 변경 하겠습니다.

 

우선 아래와 같이 OFF 상태로 변경 된 것을 확인 하실 수 있습니다.

MariaDB [(none)]> set global slow_query_log = 'OFF';
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> exit
Bye
root@gtest-db:/etc/mysql/mariadb.conf.d# mysql
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MariaDB connection id is 37
Server version: 10.6.11-MariaDB-1:10.6.11+maria~ubu2004-log mariadb.org binary distribution

Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> show variables like 'slow_query_%';
+---------------------+---------------------------------+
| Variable_name       | Value                           |
+---------------------+---------------------------------+
| slow_query_log      | OFF                             |
| slow_query_log_file | /var/log/mysql/mariadb-slow.log |
+---------------------+---------------------------------+
2 rows in set (0.001 sec)

 

 

이제 쿼리 타임을 10으로 바꾸겠습니다.

MariaDB [(none)]>  set global long_query_time = 10;
Query OK, 0 rows affected (0.000 sec)

MariaDB [(none)]> show global variables like 'long_query_time%';
+-----------------+-----------+
| Variable_name   | Value     |
+-----------------+-----------+
| long_query_time | 10.000000 |
+-----------------+-----------+
1 row in set (0.001 sec)

모두 잘 바뀐 것을 확인 할 수 있겠죠 하지만 서비스 재 실행 순간 모든 것은 컨피그 설정 방향대로 바뀔 것입니다

댓글