본문 바로가기

Database/mariaDB administrator

[mariadb] general log 설정 및 table에 log 쌓고 조회 설정 하기

안녕하세요.

 

오늘 mariadb, 물론 mysql에도 있는 log 관련된 기능 공유드립니다.

 

우선, mariadb에서는 db log를 저장할 수 있는데,

 

이것을 file이나 table에 기록할 수 있습니다.

 

이건 옵션으로 설정을 하는 건데요.

 

우선, general log가 무엇이냐?

 

mariadb에서 수행되는 모든 쿼리를 로깅하는 기능입니다.

 

이 기능을 사용해서 log file을 쌓아, 조회할 수 있겠지요.

 

좀 더 조회를 편하게 하기 위해 general log를 table에 쌓을 수 도 있는데요.

 

이 방법을 소개하겠습니다.

show variables like '%general%';

우선 mariadb에 접속해서 위 sql을 실행합니다.

 

그럼 

 

+------------------+-----------------------------------------------------------+
| Variable_name    | Value                                                     |
+------------------+-----------------------------------------------------------+
| general_log      | OFF                                                       |
| general_log_file | /logs001/masvc01/TEST_10.2.4/slow/TEST_10.2.4_general.log |
+------------------+-----------------------------------------------------------+

 

이런 화면이 나옵니다. 기존에 설정이 되어 있지 않다면 위와 같이 "OFF"로 표시가 되어 있을 겁니다.

 

그리고, file로 기록을 할지, table에 기록할지 에 대한 옵션은

show variables like '%log_output%';

이렇게 확인을 합니다.

 

+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| log_output    | FILE  |
+---------------+-------+

 

이런 식으로 나올 것이고요. 

set global general_log=on;
## general log를 활성화 시킵니다.

set global log_output='TABLE';
## general log가 table에 쌓이도록 합니다.

set global log_output='TABLE,FILE';
## 둘 다 도 가능 합니다.

그럼 이젠, mysql.general_log 테이블을 통해서 확인이 가능합니다.

 

alter table mysql.general_log engine=MyIsam;

default general_log 테이블은 CSV 엔진을 사용하기 때문에 MyIsam 엔진으로 변경해줍니다.

 

해당 명령을 하기 전에 잠시 general log를 off 해 주어야 합니다.

 

이상입니다~!!

 

 

by.sTricky