브로커 구동과 관련된 로그에는 접속 로그, 에러 로그, SQL 로그가 있다. 각각의 로그는 설치 디렉터리의 log 디렉터리에서 확인할 수 있으며, 저장 디렉터리의 변경은 브로커 환경 설정 파일(cubrid_broker.conf)의 LOG_DIR 파라미터와 ERROR_LOG_DIR 파라미터를 통해 설정할 수 있다.
접속 로그 파일은 응용 클라이언트 접속에 관한 정보를 기록하며, broker_name.access의 이름으로 저장된다. 또한, 브로커 환경 설정 파일에서 LOG_BACKUP 파라미터가 ON으로 설정된 경우, 브로커의 구동이 정상적으로 종료되면 접속 로그 파일에 종료된 날짜와 시간 정보가 추가되어 로그 파일이 저장된다. 예를 들어, broker1이 2008년 6월 17일 오후 12시 27분에 정상 종료되었다면, broker1.access.20080617.1227 이라는 접속 로그 파일이 생성된다. 다음은 접속 로그의 예제를 보여준다.
다음은 log 디렉터리에 생성된 접속 로그 파일의 예제와 설명이다.
1 192.168.1.203 - - 972523031.298 972523032.058 2008/08/17
12:27:46~2008/08/17 12:27:47 7118 - -1
2 192.168.1.203 - - 972523052.778 972523052.815 2008/08/17 12:27:47~2008/08/17
12:27:47 7119 ERR 1025
1 192.168.1.203 - - 972523052.778 972523052.815 2008/08/17 12:27:49~2008/08/17
12:27:49 7118 - -1
에러 로그 파일은 응용 클라이언트의 요청을 처리하는 도중에 발생된 에러에 관한 정보를 기록하며, broker_name_app_server_num.err의 이름으로 저장된다.
다음은 에러 로그의 예제와 설명이다.
Time: 02/04/09 13:45:17.687 - SYNTAX ERROR *** ERROR CODE = -493, Tran = 1, EID = 38
Syntax: Unknown class "unknown_tbl". select * from unknown_tbl
SQL 로그 파일은 응용 클라이언트가 요청하는 SQL을 기록하며, broker_name_app_server_num.sql.log라는 이름으로 저장된다. SQL 로그는 SQL_LOG 파라미터 값이 ON인 경우에 설치 디렉터리의 log/broker/sql_log 디렉터리에 생성된다. 이 때, 생성되는 SQL 로그 파일의 크기는 SQL_LOG_MAX_SIZE 파라미터의 설정값을 초과할 수 없으므로 주의한다.
다음은 SQL 로그 파일의 예제와 설명이다.
02/04 13:45:17.687 (38) prepare 0 insert into unique_tbl values (1)
02/04 13:45:17.687 (38) prepare srv_h_id 1
02/04 13:45:17.687 (38) execute srv_h_id 1 insert into unique_tbl values (1)
02/04 13:45:17.687 (38) execute error:-670 tuple 0 time 0.000, EID = 39
02/04 13:45:17.687 (0) auto_rollback
02/04 13:45:17.687 (0) auto_rollback 0
*** 0.000
02/04 13:45:17.687 (39) prepare 0 select * from unique_tbl
02/04 13:45:17.687 (39) prepare srv_h_id 1 (PC)
02/04 13:45:17.687 (39) execute srv_h_id 1 select * from unique_tbl
02/04 13:45:17.687 (39) execute 0 tuple 1 time 0.000
02/04 13:45:17.687 (0) auto_commit
02/04 13:45:17.687 (0) auto_commit 0
*** 0.000
설치 디렉터리의 log/broker/sql_log 디렉터리에 생성된 SQL 로그를 실행 시간이 긴 순서대로 정렬하기 위하여 broker_log_top 유틸리티를 실행한다. broker_log_top 유틸리티의 구문은 다음과 같으며, 예제는 8월 18일부터 8월 19일까지 생성된 SQL 로그를 트랜잭션 실행 시간이 긴 순서대로 정렬한다.
broker_log_top [options]
sql_log_file
options : {-t | -F
date |
-T date}
% broker_log_top -F 0818 -T 0819 -t *.sql.log
query_editor_1.sql.log
query_editor_2.sql.log
query_editor_3.sql.log
query_editor_4.sql.log
query_editor_5.sql.log
설치 디렉터리의 log/broker/sql_log 디렉터리에 생성된 SQL 로그 파일에 기록된 질의를 별도의 입력 파일로 저장하기 위하여 broker_log_converter 유틸리티를 실행한다. broker_log_converter 유틸리티의 구문은 다음과 같으며, 예제는 query_editor_1.sql.log 파일에 저장된 질의를 query_convert.in 파일로 변경한다.
broker_log_converter SQL_log_file output_file
% broker_log_converter query_editor_1.sql.log query_convert.in
broker_log_converter 유틸리티에 의해 생성된 질의 파일에 저장된 질의를 재실행하기 위하여 broker_log_runner 유틸리티를 실행한다. broker_log_runner 유틸리티의 구문은 다음과 같으며, 예제는 query_convert.in 파일에 저장된 질의를 demodb에서 재실행하며, 브로커 IP가 192.168.1.10이고, 브로커 포트는 30000인 환경임을 가정한다.
broker_log_runner
options input_file
options
: -I cas_ip
-P cas_port
-d dbname [-u dbuser
[-p dbpasswd ]]
[-t num_thread] [-r repeat_count] [
-o result_file]
옵션 |
설명 |
---|---|
-I broker_ip |
CUBRID 브로커의 IP주소 또는 호스트 이름 |
-P broker_port |
CUBRID 브로커의 포트 번호 |
-d dbname |
질의를 실행할 데이터베이스 이름 |
-u dbuser |
데이터베이스 사용자 이름 (디폴트 값: public) |
-p dbpasswd |
데이터베이스 암호 |
-t numthread |
스레드의 개수(디폴트 값: 1) |
-r repeat_count |
질의가 수행될 횟수(디폴트 값: 1) |
-o result_file |
수행 결과를 저장할 파일 이름 |
% broker_log_runner -I 192.168.1.10
-P 30000 -d demodb -t 2 query_convert.in
cas_ip = 192.168.1.10
cas_port = 30000
num_thread
= 2
repeat = 1
dbname = demodb
dbuser = public
dbpasswd =
exec_time : 0.001
exec_time : 0.000
0.000500 0.000500 -