반응형
SHOW VARIABLES LIKE 'general_log';
SHOW VARIABLES LIKE 'log_output';
SET GLOBAL general_log = 1;
SET GLOBAL log_output = 'table';
-- 필요시에만 켜서 사용
SET GLOBAL general_log = 0;
SET GLOBAL log_output = 'file';
-- 평상시에는 이렇게 disable해 두어야 엔진의 성능에 부담이 가지 않으므로 주의
Query logging table: mysql.general_log
* MySQL에서는 milli-second 단위로 시간을 처리하지 않으므로 timestamp는 초 단위까지만 기록된다.
ALTER TABLE mysql.general_log
ADD COLUMN seq BIGINT UNSIGNED NOT NULL AUTO_INCREMENT AFTER argument,
ADD PRIMARY KEY(seq),
ENGINE=MYISAM;
으로 log table을 alter한 후 order by seq desc와 같이 select 해서 실행 순서대로 정렬하여 활용하면 된다.
MySQL에서 사용되는 기본 general_log 테이블에는 index 가 없으므로, 위와 같이 index 를 이용한 조회를 하지 않으면
데이터베이스 성능에 부담을 주게 되며,
확인이 끝 난 후 반드시 general_log를 disable해 두어야만 성능상의 문제로 재난이 생기지 않으니 반드시 유의해야 한다.
general_log 테이블을 비워야 할 경우, delete 쿼리를 수행하면 '로그테이블에 대한 처리 불가'라고 오류가 발생하게 되므로
아래와 같이 처리해야 한다.
SET GLOBAL general_log = OFF; -- log를 계속 쌓도록 하려면 생략
USE mysql;
create table tmp_general_log like general_log;
rename table generlal_log to old_general_log, tmp_general_log to general_log;
반응형
'Technical > DBMS' 카테고리의 다른 글
Percona - Xtrabackup 1.4 유틸리티의 innobackupex 스크립트 오류 (0) | 2011.01.26 |
---|---|
MySQL Tip - caution for 'not found handler' (0) | 2011.01.09 |
CentOS 5.4, MySQL build를 위한 패키지들 (0) | 2010.10.01 |
MySQL replication : Statement-Based vs. Row-Based replication (0) | 2010.08.01 |
MySQL replication 수동 복구(Slave 동기화) #2 (0) | 2010.07.29 |