컴퓨터 / Computer

슬로우 쿼리 로그 설정

0_fivEmSUN_cafc0046fceae53820e6e11ed19a3a0d3034ec3c.jpg 


로그를 남기지 않으면 시스템이 조금 더 빠르지만 오류가 발생하거나 문제를 해결하려면 로그를 봐야 하기에 로그는 시스템 운영에서 필수 조건이다. 이번 로그는 몇 초 이상 느리게 동작하는 쿼리를 찾아 낼때 사용한다. 


대다수 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 파일 생성 시작한다.




Comments

공유지기 2018.08.16 16:38
그리고 db 스키마만 다운 받는 법.


mysqldump -u [user] -p -d [db name] > [db name].sql