MySQL 로그 출력을 테이블로 보내기
MySQL 로그 출력을 테이블로 보내기
DB 파라미터 그룹을 만들고 log_output 서버 파라미터를 TABLE로 설정하면 일반 로그와 느린 쿼리 로그를 DB 인스턴스의 테이블로 보낼 수 있어요. 그러면 일반 쿼리는 mysql.general_log 테이블에, 느린 쿼리는 mysql.slow_log 테이블에 기록돼요. 테이블을 쿼리해 로그 정보에 액세스할 수 있어요. 이 로깅을 활성화하면 데이터베이스에 기록되는 데이터 양이 늘어 성능이 저하될 수 있어요.
일반 로그와 느린 쿼리 로그는 모두 기본적으로 비활성화돼요. 테이블에 로깅을 활성화하려면 general_log 및 slow_query_log 서버 파라미터도 1로 설정해야 해요.
로그 테이블은 해당 로깅 활동이 꺼질 때까지(적절한 파라미터를 0으로 재설정) 계속 커져요. 시간이 지나면 많은 양의 데이터가 누적되어 할당된 스토리지 공간의 상당 부분을 차지할 수 있어요. Amazon RDS는 로그 테이블을 잘라낼(truncate) 수 없게 하지만, 내용을 이동할 수는 있어요. 테이블을 순환(rotate)하면 내용을 백업 테이블에 저장한 다음 새 빈 로그 테이블을 만들어요. 다음 명령줄 절차로 로그 테이블을 수동으로 순환할 수 있어요. 명령 프롬프트는 PROMPT>로 표시됩니다.
출처: 문서
본문
MySQL 로그 출력을 테이블로 보내기
DB 파라미터 그룹을 만들고 log_output 서버 파라미터를 TABLE로 설정하면 일반 로그와 느린 쿼리 로그를 DB 인스턴스의 테이블로 보낼 수 있어요. 그러면 일반 쿼리는 mysql.general_log 테이블에, 느린 쿼리는 mysql.slow_log 테이블에 기록돼요. 테이블을 쿼리해 로그 정보에 액세스할 수 있어요. 이 로깅을 활성화하면 데이터베이스에 기록되는 데이터 양이 늘어 성능이 저하될 수 있어요.
일반 로그와 느린 쿼리 로그는 모두 기본적으로 비활성화돼요. 테이블에 로깅을 활성화하려면 general_log 및 slow_query_log 서버 파라미터도 1로 설정해야 해요.
로그 테이블은 해당 로깅 활동이 꺼질 때까지(적절한 파라미터를 0으로 재설정) 계속 커져요. 시간이 지나면 많은 양의 데이터가 누적되어 할당된 스토리지 공간의 상당 부분을 차지할 수 있어요. Amazon RDS는 로그 테이블을 잘라낼 수 없게 하지만, 내용을 이동할 수는 있어요. 테이블을 순환하면 내용을 백업 테이블에 저장한 다음 새 빈 로그 테이블을 만들어요. 다음 명령줄 절차로 로그 테이블을 수동으로 순환할 수 있어요(명령 프롬프트는 PROMPT>로 표시):
PROMPT> USE mysql;
PROMPT> CREATE TABLE mysql.general_log2 LIKE mysql.general_log;
PROMPT> RENAME TABLE mysql.general_log TO mysql.general_log_backup,
mysql.general_log2 TO mysql.general_log;