2012-03-13 3 views

답변

6

없음 일 - general query log 로깅 쿼리에 대한 유일한 옵션입니다 - 당신이 테이블에 로그인 한 다음 해달라고 결과가 Percona 툴킷의 pt-query-digest 사용이 가능

2

필요 삭제할 수 있지만,이 ... 전체 서버입니다 .

모든 SELECT의, UPDATE의를 모니터링하려는 경우와 JOIN의 감동 table_one, 트릭 할 것입니다 데이터베이스 서버에서이 같은 것을 실행 table_twomy_databasetable_three :

tcpdump -s 65535 -x -nn -q -tttt -i any -c 1000 port 3306 | 
pt-query-digest --type tcpdump \ 
       --run-time 5s \ 
       --iterations 0 \ 
       --filter '$event->{fingerprint} =~ m/\b(from|join|into)\s+(`?my_database`?\.)`?(table_one|table_two|table_three)`?\b/' \ 
       --output slowlog \ 
       --no-report 

tcpdump을 사용하여 들어오는 모든 데이터베이스 트래픽을 모니터링하고이를 pt-query-digest 도구로 파이프합니다.이 도구는이를 해당 테이블의 쿼리로 필터링하려고 시도합니다. 출력은 MySQL의 느린 쿼리 로그와 유사합니다.

사용자의 요구에 맞게 --filter 인수의 정규 표현식을 조정해야합니다. 대부분의 정규 표현식의 경우와 마찬가지로 많은 경우가 발생합니다. 나는 그들 중 몇 가지를 다루려고했지만 정규 표현식에 관해서는 전문가가 아니다.

이것은 완벽한 해결책은 아니지만 일반적인 쿼리 로그 사용이 금지되는 특정 상황에서 저를 위해 속임수를 사용했습니다.

관련 문제