개요
Tibero에서 바인드 변수 값을 캡처하여 확인하기 위해 ILOG TAG 기능을 활성화하는 방법을 설명합니다.
주의
패치 FS06_128314a (Tibero 7 FS02 이상 기반영) 적용이 필요합니다.
티맥스티베로에서 제공하는 기술지원을 통해 패치를 적용합니다.
바인드 변수를 확인하기 위해서는 아래 TAG를 활성화 해야합니다.
•
BODY_MSG_CSR_BIND_PARAM_INFO
•
BODY_SQL_PROCESS
•
CSR_USERPARAM_TO_STRNLOG_NULL
•
CSR_USERPARAM_TO_STRNLOG
•
CSR_USERPARAM_TO_STRNLOG_UNKNOWN
방법
1. Tibero 접속 후 TAG 리스트 활성화
•
TAG 활성화 : System 단위
•
LEVEL : Detail
$ tbsql sys/tibero
ALTER SYSTEM ILOG ENABLE NAME 'BODY_MSG_CSR_BIND_PARAM_INFO' LEVEL DETAIL;
ALTER SYSTEM ILOG ENABLE NAME 'BODY_SQL_PROCESS' LEVEL DETAIL;
ALTER SYSTEM ILOG ENABLE NAME 'CSR_USERPARAM_TO_STRNLOG_NULL' LEVEL DETAIL;
ALTER SYSTEM ILOG ENABLE NAME 'CSR_USERPARAM_TO_STRNLOG' LEVEL DETAIL;
ALTER SYSTEM ILOG ENABLE NAME 'CSR_USERPARAM_TO_STRNLOG_UNKNOWN' LEVEL DETAIL;
SQL
복사
2. 바인드 변수 캡처 확인 (ILOG 모니터링)
테이블 생성 후 데이터를 삽입하고 커밋하는 예제입니다.
-- 테이블 생성 및 추가
$ tbsql tibero/tmax
SQL> create table ttt(a) as select * from dual;
Table 'TTT' created.
SQL> insert into ttt values('T');
1 row inserted.
SQL> commit;
Commit completed.
SQL
복사
tbiv를 통해 바인드 변수 캡쳐 확인
$ tbiv tsc_tibero-92.ilg
Tibero Internal Log Viewer (7 r283516, little-endian)
TmaxTibero Corporation Copyright (c) 2020-. All rights reserved.
03/10 11:18:38.4 0-0092 tbsvr_sq:277 SQL PROCESS: sql=SELECT OPEN_MODE FROM SYS.V$DATABASE, csr=2
03/10 11:18:38.5 0-0092 tbsvr_sq:277 SQL PROCESS: sql=SELECT /*+ no_outline / ACTION, POLICY FROM CLIENT_ACCESS_POLICY WHERE CLIENT = 'tbSQL' AND
(USERID = 'PUBLIC' OR ? LIKE USERID), csr=3
03/10 11:18:38.5 0-0092 tbsvr_ms:955 BINDING[CSR_ID=3]: param #0, param_kind=IN, param_type=TB_TYPE_VARCHAR
03/10 11:18:38.5 0-0092 csr.c:3747 BINDING[CSR_ID=3]: param #0: param_val_len=6, param_val: [TIBERO]
03/10 11:18:39.4 0-0092 tbsvr_sq:277 SQL PROCESS: sql=SELECT /+ no_outline */ OBJECT_NAME _LS_OBJECT_NAME, SUBOBJECT_NAME _LS_SUBOBJECT_NAME,
OBJECT_TYPE _LS_OBJECT_TYPE FROM ALL_OBJECTS WHERE OWNER = ? AND OBJECT_TYPE NOT IN ('LOB') AND OBJECT_NAME NOT LIKE '_TB_STAT_SNAP%%' ORDER BY OBJECT_TYPE, OBJECT_NAME, csr=4
03/10 11:18:39.4 0-0092 tbsvr_ms:955 BINDING[CSR_ID=4]: param #0, param_kind=IN, param_type=TB_TYPE_VARCHAR
03/10 11:18:39.4 0-0092 csr.c:3747 BINDING[CSR_ID=4]: param #0: param_val_len=6, param_val: [TIBERO]
03/10 11:18:44.4 0-0092 tbsvr_sq:277 SQL PROCESS: sql=create table ttt(a) as select * from dual, csr=5
03/10 11:18:44.4 0-0092 ddl_fram:228 Executing DDL: create table ttt(a) as select * from dual
03/10 11:18:44.4 0-0092 tx_sgmt.:2490 sgmt create: ts=3 sgmt=5083 type=1 extsz=16 blksz=8192
03/10 11:18:44.4 0-0092 tx_sgmt.:1980 sgmt creation completed. ts=3 sgmt=5083 type=1 extsz=16, extdba=02_00000215
03/10 11:18:44.4 0-0092 td_dp.c:447 init dp start: tsid=3, shdrdba=02_00000217, sgmt_id=5083, initrs=2, pctf=819, mexts=4294967295, aalloc=1, log=1, ifb=0, sup=0, dtf=0 pll=0 o_sync=0
03/10 11:18:44.4 0-0092 td_dp.c:495 init dp end: tsid=3, shdrdba=02_00000217, sgmt_id=5083, initrs=2, pctf=819, mexts=4294967295, aalloc=1, log=1, ifb=0, sup=0, dtf=0 pll=0 o_sync=0
03/10 11:18:44.4 0-0092 tc_fdpoo:654 fdelem alloc 00007f7dd18bf468
03/10 11:18:44.4 0-0092 ddl_fram:267 DDL execution succeeded
03/10 11:18:47.2 0-0092 tbsvr_sq:277 SQL PROCESS: sql=insert into ttt values('T'), csr=30
03/10 11:18:51.0 0-0092 tbsvr_sq:277 SQL PROCESS: sql=commit, csr=33
SQL
복사
실시간 확인 시 명령어
$ tbiv -f {파일명}.ilg
SQL
복사
3. ILOG TAG 비활성화
작업 완료 후, 활성화한 TAG를 비활성화합니다.
$ tbsql sys/tibero
ALTER SYSTEM ILOG DISABLE NAME 'BODY_MSG_CSR_BIND_PARAM_INFO';
ALTER SYSTEM ILOG DISABLE NAME 'BODY_SQL_PROCESS';
ALTER SYSTEM ILOG DISABLE NAME 'CSR_USERPARAM_TO_STRNLOG_NULL';ALTER
SYSTEM ILOG DISABLE NAME 'CSR_USERPARAM_TO_STRNLOG';
ALTER SYSTEM ILOG DISABLE NAME 'CSR_USERPARAM_TO_STRNLOG_UNKNOWN';
SQL
복사
주의
•
ILOG TAG를 활성화하면 로그가 많아져 성능 저하나 디스크 사용량 증가가 발생할 수 있으므로, 사용 후 반드시 비활성화를 해야 합니다.
•
부하가 큰 시스템일 경우 운영 환경에서 사용 시 주의가 필요합니다.