로그를 남기지 않으면 시스템이 조금 더 빠르지만 오류가 발생하거나 문제를 해결하려면 로그를 봐야 하기에 로그는 시스템 운영에서 필수 조건이다. 이번 로그는 몇 초 이상 느리게 동작하는 쿼리를 찾아 낼때 사용한다.
대다수 DBMS는 슬로우 쿼리를 Off로 설정해 두기 때문에 살짝 설정을 통해서 켜야 한다.
1. 설정 여부 확인
mysql 에 접속하여 다름과 같이 쿼리를 날려 본다.
SHOW VARIABLES LIKE 'slow_query_%'; |
슬로우 쿼리 로그를 남기도록 해 놨다면 "ON"이 되어 있을 것이다. 하지만 대다수는 OFF값이다.
2. 폴더 및 권한 설정
- 보통 로그는 /var/log 폴더에 만들기 때문에 그 아래에 mysql 이나 mariadb 폴더를 하나 생성한다.
- 그리고 mysql이 쓸 수 있도록 아래와 같이 권한 설정을 해 둔다.
chown mysql:mysql /var/log/mysql |
3. my.cnf 설정
(보통 my.cnf 파일에 가보면 /etc/my.cnf.d/ 폴더 아래로 가라고 한다. 해당 폴더로 가게 되면 server.cnf 파일을 연다)
아래 내용을 넣는다.
[mysqld] slow_query_log = 1 slow_query_log_file = /var/log/mysql/db-slow.log long_query_time = 5 log_slow_rate_limit = 1 log_slow_verbosity = query_plan log_slow_admin_statements |
이렇게 한 후에 service mysql restart 하면 /var/log/mysql 폴더에 db-slow.log 파일 생성 시작한다.
mysqldump -u [user] -p -d [db name] > [db name].sql