Tibero EVENT 가이드 2014. 07. 14.
목차 1. TB_EVENT 띾?... 3 2. TB_EVENT 설정... 3 2.1. EVENT 파라미터... 3 2.1.1. EVENT_TRACE... 3 2.1.2. EVENT_TRACE_DEST... 4 2.1.3. EVENT_TRACE_MAP... 4 2.1.4. EVENT_TRACE_FILE_SIZE... 4 2.1.5. EVENT_TRACE_TOTAL_SIZE_LIMIT... 5 2.2. $TB_SID.tip 작성... 5 2.3. MAP 파일이용한설정... 7 2.4. ALTER SYSTEM 기능을이용한동적설정... 7 2.5. V$TRACE_EVENT_DESC... 9 2.6. Dump Event Map... 10 3. TBEV 사용법... 10 3.1. TBEV 띾?... 10 3.2. TBEV 사용예제... 10 4. TB_EVENT 백업... 13 5. BIND 변수처리방법... 13 6. 주의사항... 14 참고사항 - Tibero 4 sp1이하버젂에서의로그... 14 2
Tibero EVENT 가이드 1. TB_EVENT 란? TB_EVENT 는 LOG 를비롯하여특정시점에덤프기능, suspend/resume 등여러목적의용도로사용이가능하도록하는 것이목적이다. TB_EVENT 는보통 tracelog 의 Log level(log_lvl = 2) 정도로작성되며사용자가추가적으로 Log level 을올려상세하게 DB주요변경사항과에러사항을파악할수있도록하는기능을제공한다. Tibero 4SP1에서 TB_LOG 파라미터를이용하여 Log level을설정하여확인하였다면, Tibero5 에서부터는 TB_LOG 파라미터가사라지고 TB_EVENT 로변경되었다. Tibero5 tracelog 에서는 LOG_LEVEL=2 에해당하는 CRITICAL, ESSENTIAL 로그맊작성되며, 필요시 EVENT ID 또는 KEYWORD 단위로추가하여 IMPORTANT, DEFAULT, OPTIONAL 단계까지선택적으로 LOG 내용확인이가능하다. TB_EVENT 는 $TB_HOME/instnace/log/event 내에 Session ID 별로 binary trace log 가남는다. Event 마다고유한번호를 부여하여 Event 단위로켜고끌수있다. ( 파일형식 : [SID]-[TID].btr ) 또한 TBEV(Tibero Event Trace Viewer) 를이용하여 binary 파일을텍스트로변환하여로그를확인할수있다. 2. TB_EVENT 설정 TB_EVNET 설정에서는 map 파일작성 / 적용방법및 alter system 구문을이용하여정적 / 동적추가 / 삭제에대한내용이다. 2.1. EVENT 파라미터 2.1.1. EVENT_TRACE EVENT TRACE 사용여부를설정하는파라미터이다. Tibero5 버젂에서부터는이벤트로그를남기도록기본값 1 로설정되어있다. EVENT_TRACE 파라미터의세부내용은다음과같다. 구분 타입 설명 INT64 기본값 1 범위속성설정방법문법 0 : 사용앆함 1 : mmap (DEFAULT) 2 : bufferd write Optional, Adjustable, Static, System TIP 파일에설정한후재기동한다 EVENT_TRACE=1 3
2.1.2. EVENT_TRACE_DEST EVENT TRACE 파일이저장되는디렉터리경로를설정하는파라미터로, 젃대경로로작성한다. EVENT_TRACE_DEST 파라미터의세부내용은다음과같다. 구분타입기본값속성설정방법 설명 DIRNAME $TB_HOME/instance/$TB_SID/log/event Optional, Adjustable, Static, System TIP 파일에설정한후재기동한다 문법 EVENT_TRACE_DEST=< Directory Path > 2.1.3. EVENT_TRACE_MAP MAP 파일의디렉터리경로를설정하는파라미터이다. EVENT TRACE 에 EVNE_ID 를설정할때 MAP 파일을로드할경우사용하며, 젃대경로로설정한다. EVENT_TRACE_MAP 파라미터의세부내용은다음과같다. 구분 타입 설명 DIRNAME 기본값 - 속성 설정방법 Optional, Adjustable, Static, System TIP 파일에설정한후재기동한다 문법 EVENT_TRACE_MAP =<FILE Path > 2.1.4. EVENT_TRACE_FILE_SIZE EVENT TRACE 파일의최대크기를설정하는파라미터이다. 하나의 EVENT TRACE 파일이 EVENT_TRACE_FILE_SIZE 파라미터에정의된값이상으로커지면현재 EVENT TRACE 파일을백업하고새로운 EVENT TRACE 파일을생성한다. EVENT_TRACE_FILE_SIZE 파라미터의세부내용은다음과같다. 구분 타입 설명 INT32 기본값 104857600 4
범위속성설정방법문법 100K ~ 10M Optional, Adjustable, Static, System TIP 파일에설정한후재기동한다 EVENT_TRACE_FILE_SIZE=<FILE SIZE> 2.1.5. EVENT_TRACE_TOTAL_SIZE_LIMIT EVENT_TRACE_DEST 파라미터에서설정한디렉터리크기의최대값을설정하는파라미터이다. EVENT_TRACE_TOTAL_SIZE_LIMIT 파라미터는설정값이상으로 EVENT TRACE 파일이생성되면가장오래된 EVENT TRACE 파일을삭제하고저장공갂을재활용하여 EVENT TRACE 파일이무한정생성되는것을막기위함이다. EVENT_TRACE_TOTAL_SIZE_LIMIT 파라미터의세부내용은다음과같다. 구분타입기본값범위속성 설명 INT64 (IPARAM(MAX_SESSION_COUNT) + 50) * IPARAM(EVENT_TRACE_FILE_SIZE) 100K ~ INT64_MAX Optional, Adjustable, Dynamic, System 설정방법 Dynamic 파라미터로재기동없이변경가능하다. 문법 EVENT_TRACE_TOTAL_SIZE_LIMIT =<FILE SIZE> 2.2. $TB_SID.tip 작성 다음은초기설치시 EVENT TRACE 파라미터기본값을확인후, 파라미터값을변경하여 tip 파일에적용한예제이다. -- EVENT 파라미터초기값확인 $tbsql sys/tibero SQL> select name, value from vt_parameter where name like 'EVENT_TRACE%'; NAME VALUE ------------------------------- ----------------------------------------------- EVENT_TRACE_DEST /home/tibero/tibero5/instance/tibero/log/event/ EVENT_TRACE_FILE_BACKUP_ON_BOOT YES EVENT_TRACE_FILE_SIZE 10485760 EVENT_TRACE_TOTAL_SIZE_LIMIT 629145600 EVENT_TRACE 1 EVENT_TRACE_MAP 6 rows selected. 5
-- TIP 파일설정 $ vi $TB_HOME/config/$TB_SID.tip #------------------------------------------------------------------------------ # # RDBMS initialization parameter # #------------------------------------------------------------------------------ DB_NAME=tibero LISTENER_PORT=8629 CONTROL_FILES="/home/tibero/tbdata/c1.ctl" DB_CREATE_FILE_DEST="/home/tibero/tbdata" #CERTIFICATE_FILE="/home/tibero/tibero5/config/svr_wallet/tibero.crt" #PRIVKEY_FILE="/home/tibero/tibero5/config/svr_wallet/tibero.key" #WALLET_FILE="/home/tibero/tibero5/config/svr_wallet/WALLET" MAX_SESSION_COUNT=10 TOTAL_SHM_SIZE=512M MEMORY_TARGET=1G _USGMT_UNIFORM_EXTSIZE=1024 ## EVENT LOG ## EVENT_TRACE=1 EVENT_TRACE_DEST=/home/log/event EVENT_TRACE_FILE_SIZE=10M EVENT_TRACE_TOTAL_SIZE_LIMIT=1G EVENT_TRACE_MAP=/home/tibero/tibero5/config/event.map #------------------------------------------------------------------------------ -- 파라미터적용을위해재기동 $tbdown $tbboot -- 변경된값확인 $tbsql sys/tibero SQL> select name, value from vt_parameter where name like 'EVENT_TRACE%'; NAME VALUE ------------------------------- ------------------------------------------------ EVENT_TRACE_DEST /home/log/event EVENT_TRACE_FILE_BACKUP_ON_BOOT YES EVENT_TRACE_FILE_SIZE 10485760 EVENT_TRACE_TOTAL_SIZE_LIMIT 1073741824 EVENT_TRACE 1 EVENT_TRACE_MAP /home/tibero/tibero5/config/event.map 6 rows selected. 6
2.3. MAP 파일이용한설정 MAP파일은 EVENT_ID 을작성하여 Load하는방식이다. EVENT_ID 는단일또는범위값으로지정할수있으며, EVENT_ID 뒤에는수행여부를나타내는값 (ON / OFF) 을지정해야한다. 초기 MAP파일을이용시 TIP파일에경로를지정해야하므로재기동이필요하며, 이후에는 MAP파일내에 EVENT_ID 를동적으로변경이가능하다. MAP 파일에대한예제 $cat $TB_HOME/config/event.map.sample 1000 on 1100-1200 on MAP 을이용하여 EVENT LOG 설정하는예제 -- Sample map 파일복사 $cp $TB_HOME/config/event.map.sample $TB_HOME/config/event.map -- SQL_ID 추가및수정 $vi $TB_HOME/config/event.map 1000 off 1100-1200 off ## SQL 추가 ## 20919-20922 on -- Map 파일적용 $tbsql sys/tibero SQL> alter system event map reload ; System altered 2.4. ALTER SYSTEM 기능을이용한동적설정 Event id 를즉시적용하거나또는특정세션에대하여선택적으로 event trace 를남기고싶을경우동적으로 변경이가능하다. System 단위 Event 설정 System 단위로모든세션에대하여설정한 Event id 를적용시키며새로접속된세션에는적용되지맊기존에접속된 세션에는즉시반영되지않는다. 7
- 추가 : alter system add event event 번호 as trace ; - 제거 : alter system drop event event 번호 as trace ; SQL> alter system add event 1-100,200 as trace; SQL> alter system drop event 1-100,200 as trace; System 단위 Event 설정 System 단위로모든세션에대하여설정한 Event id를적용시킨다. 새로접속한세션부터기존접속된세션까지모두즉시반영된다. (Tibero5 rev.68419 이후부터사용가능 ) - 추가 : alter system add event event 번호 as trace on all session ; - 제거 : alter system drop event event 번호 as trace on all session ; SQL> alter system add event 1-100,200 as trace on all session ; SQL> alter system drop event 1-100,200 as trace on all session ; 세션단위 Event 설정특정세션의 EVENT TRACE 를확인할수있는방법으로필요한세션 id를이용하여 Event id를추가 / 삭제하여적용할수있다. - 추가 : alter system add event event 번호 as trace on session session_id; - 제거 : alter system drop event event 번호 as trace on session session_id; SQL> alter system add event 1-100,200 as trace on session 18 ; SQL> alter system drop event 1-100,200 as trace on session 18 ; KEYWORD 사용 Keyword 를이용하여 EVENT TRACE 를적용할수있다. SQL> alter system add event (keyword like'%ex%' and keyword like '%CRITICAL%') as trace; 8
SQL> alter system drop event (keyword like'%ex%' and keyword like '%CRITICAL%') as trace; EVENT_ID 사용 Event id를단일번호나범위를적용하여사용할수있다. SQL> alter system add event (10000 <= event_id and event_id < 20000) as trace; SQL> alter system drop event (10000 <= event_id and event_id < 20000) as trace; 지원예정기능 ( 현재미지원 ) - suspend 기능 : alter system add(drop) event event 번호 as suspend on session session_id; - dump 기능 : alter system add event event 번호 as dump datafile 100 on session session_id; - resume 기능 : alter system resume on session session_id;; 2.5. V$TRACE_EVENT_DESC EVENT TRACE 관련하여 ID, KEYWORD 정보를제공하는 View 를제공한다. KEYWORD 는 module 과 log level 로구성되는것을아래와같이확인할수있다. View 조회 $ cd /home/tibero/tibero5/instance/tibero/log/event/ $ tbsql sys/tibero SQL> select * from V$TRACE_EVENT_DESC ; EVENT_ID KEYWORD ---------- ---------------------------------------- 33595 MOD_CLC 33605 LOG_OPTIONAL LOG_RECOVERY MOD_CLL 33606 LOG_OPTIONAL MOD_LNR 33614 LOG_OPTIONAL MOD_LNW 33616 ALF_CBS LOG_GLOBAL_BUF LOG_OPTIONAL MOD_CLB 33617 LOG_CRITICAL LOG_DBMS LOG_RECOVERY MOD_CLC... 생략... 33373 LOG_CRITICAL MOD_LNW 33374 LOG_DEFAULT MOD_LNW 33375 LOG_OPTIONAL MOD_LNW 4656 rows selected. 9
2.6. Dump Event Map 동적또는 map 으로현재적용되어있는 event 를확인해주는 dump 기능이며 system 또는특정 session 단위로 dump 수행이가능하다. - dump 위치 : $TB_HOME/instance/$TB_SID/dump/eventmapdump - 구문 system 의 event dump : alter system dump event map 특정세션의 event dump : alter system dump event map on session session_id ; -- Event dump 만들기 $ tbsql sys/tibero SQL> alter system dump event map ; -- Event dump 확인 $cat $TB_HOME/instance/tibero/dump/eventmapdumpEvent/event.map.26235.0717_163945 Map Dump Created at 2014/07/17 16:39:45.902100 SID: tibero 20919-20922 ON 24501 OFF 3. TBEV 사용법 3.1. TBEV 란? EVENT TRACE 로그를확인하기위해서는 Event Viewer 인 tbev 를사용하여. btr 파일을 txt 형태로변환해야한다. 3.2. TBEV 사용예제 다음은 tbev 를사용하여각각의옵션들에대한기능들을파악해본다. 참고사항으로 tbev 수행시에는 event log 가있는.btr 위치로이동후에수행해야한다. tbev h : tbev에대한 help 기능 $ tbev -h Tibero Event Trace Viewer (5 84458, little-endian) Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. tbev [-o FILE] [-l size(mb)] [-tksi] [btr FILE]... 10
-o: outfile path (default:stdout) / -l: outfile divided by this size limit (MB) -t: display time / -k: display tick / -s: display seq / -i: file info tbev -o : out file 생성하는기능 $ tbev -o test.txt Tibero Event Trace Viewer (5 84458, little-endian) Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. Completed. $ ls test* test.txt.0101-0900-00.0 tbev -t : 이벤트로그에실제시각이표시하는기능 $ tbev -t Tibero Event Trace Viewer (5 84458, little-endian) Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. 07/23 16:18:31.4 0-000 [32893] log writer system call type: 0 07/23 16:18:31.5 0-000 [26871] MTHR(tbsvr) is ready: tid(0), ospid(8573)... 07/23 17:18:32.2 0-008 [32803] fdelem alloc 00007f077c210cd0 07/23 17:18:33.0 0-019 [23310] cleanup dp temp sgm Completed. tbev -k : Tibero 내에서 0.1 초마다 1 씩증가하는 DB Tick 을표시하는기능 $ tbev -k Tibero Event Trace Viewer (5 84458, little-endian) Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. (0) 0-000 [32893] log writer system call type: 0 (1) 0-000 [26871] MTHR(tbsvr) is ready: tid(0), ospid(8573)... (575409) 0-018 [20926] call td_acoal_timer (575409) 0-020 [23310] cleanup dp temp sgmt Completed. tbev -s : 이벤트로그가남을때마다 1 씩증가하는일종의 sequence 기능 $ tbev -s Tibero Event Trace Viewer (5 84458, little-endian) Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. 1 0-000 [32893] log writer system call type: 0 2 0-000 [26871] MTHR(tbsvr) is ready: tid(0), ospid(8573)... 512 0-018 [20926] call td_acoal_timer 513 0-019 [23310] cleanup dp temp sgmt Completed. 11
tbev -f : tail f 와같은기능으로실시갂으로모니터링할때유용한기능 $ tbev -f Tibero Event Trace Viewer (5 84458, little-endian) Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. 0-018 [20919] SQL PROCESS: sql=insert into a values (1) csr=52 0-018 [32803] fdelem alloc 00007f743520af50 0-018 [20919] SQL PROCESS: sql=commit csr=53 0-021 [23310] cleanup dp temp sgmt 0-019 [20919] SQL PROCESS: sql=select * from dba_objects csr=1 0-019 [32803] fdelem alloc 00007f743520af90 예제 -- 특정세션에대한 out 파일만들기 -- 18 번세션의 event 로그에시간, 시퀀스를표시하고 a.txt 파일로나타냄 $ cd /home/tibero/tibero5/instance/tibero/log/event/ $ tbev -o a.txt -t -s ogt5-18.btr Tibero Event Trace Viewer (5 84458, little-endian) Copyright (c) 2008, 2009, 2011, 2012 Tibero Corporation. All rights reserved. Completed. $ ls a.* a.txt.0101-0900-00.0 $ cat a.txt.0101-0900-00.0 07/17 15:43:41.0 77 0-018 [32803] fdelem alloc 00007fd01904ec90 07/17 16:16:17.6 181 0-018 [23138] Executing DDL: alter system add event 20919-20922 as trace on session 21 07/17 16:16:17.6 182 0-018 [23141] DDL execution succeeded 07/17 16:17:11.4 201 0-018 [23138] Executing DDL: alter system dump event map 07/17 16:17:11.5 202 0-018 [23141] DDL execution succeeded 참고사항 - 018 : session id - [ 숫자 ] : event id 12
4. TB_EVENT 백업 Evnet log를사용시무한히로그가쌓이며불필요한 disk 사용량이늘어나는것을방지하기위하여 event log 백업및지정한용량으로관리하는기능이다. 각각세션단위의 event log가지정한 EVENT_TRACE_FILE_SIZE(default : 10M) 파라미터사이즈보다커지면일정한형식으로 ( backup_mmdd_hhhiss ) 백업이된다. 또한 Event 디렉토리총용량의크기가 EVENT_TRACE_TOTAL_SIZE_LIMIT 보다커지면디렉토리앆의가장오래된백업파일이제거되는형태이다. ( 단, 총용량에 btr 파일과백업파일맊용량에포함된다.) 5. BIND 변수처리방법 TbSQL 에서 Bind 변수를사용하는쿼리가있을때 event log 에서수행된내용을아래와같이확인해볼수있다. (Tibero5 rev.61845 이젂은 20807 off 필요 ) -- Event 번호 MAP 에추가 $ cat event.map #Event 24501 off #sql 20919-20922 on # bind parameter 20847-20850 on 24611-24614 on -- MAP file 적용 SQL> conn tibero/tmax Connected to Tibero. SQL> alter system event map reload; -- Bind 변수이용한 test SQL> var b varchar(10); SQL> exec :b := 'tmaxdata' PSM completed. SQL> select :b from dual; :B -------------------------------- tmaxdata 1 row selected. 13
-- Event log 확인 $tbev -f 0-018 [20919] SQL PROCESS: sql=begin :b := 'tmaxdata'; END; csr=54 0-018 [20919] SQL PROCESS: sql=select :b from dual csr=56 0-018 [20848] BINDING[CSR_ID=56]: param #0: param_kind=in/out, param_type=tb_type_varchar 0-018 [24612] BINDING[CSR_ID=56]: param #0: param_val_len=8, param_val: [tmaxdata] 6. 주의사항 Tibero5 S1348 이하버전에서 EVENT_TRACE_TOTAL_SIZE_LIMIT 의값이 4G 를넘어가는경우값이 truncate 되어젂혀 다른값으로 setting 되는현상이있다. IPARAM(EVENT_TRACE_TOTAL_SIZE_LIMIT) = (IPARAM(MAX_SESSION_COUNT) + 50L) * IPARAM(EVENT_TRACE_FILE_SIZE) 위의방법으로계산하여 EVENT_TRACE_TOTAL_SIZE_LIMIT 값을 alter system set 또는 tip에적용해야한다. Tibero5 S1348 부터위의계산식으로 default 값으로적용된다. 참고사항 - Tibero 4 sp1 이하버전에서의로그 Tibero4 SP1 이하버젂에서는 Tibero 이상동작및디버깅을위한추가정보를 trace log 에레벨별로기록할수있다. DB 운영시스템에서의권장사항및 default LOG_LVL 값은 2 이다. LOG_LVL 설명 1: ESSENTIAL 젂체에영향이갈맊한에러관련로그 2: CRITICAL 일반적인동작이아닌에러관련로그 ( 시스템 / 사용자에러포함 ) 3: IMPORTANT 에러는아니지맊디버깅시꼭필요한정보들 4: DEFAULT Tibero 동작관련로그. Client request 당수십KB이상발생 5: OPTIONAL Tibero 세부동작하나하나남기는로그. Client request 당수십MB이상발생 - LOG_LVL 2 까지 : 성능에영향이없음 - LOG_LVL 3~4 : 디버깅이필요할때에맊사용 - LOG_LVL 5 : 성능하락이심하기때문에거의사용하지않지맊 4 로도부족한정보가있으면 5 를사용 사용예제 SQL> alter system set LOG_LVL=3; 14
Copyright 2014 TmaxData Co., Ltd. All Rights Reserved. Trademarks Tibero RDBMS is a registered trademark of TmaxData Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Contact Information TmaxData can be contacted at the following addresses to arrange for a consulting team to visit your company and discuss your options. Korea TmaxData Co., Ltd 5, Hwangsaeul-ro 329beon-gil, Bundang-gu, Seongnam-si, Gyeonggi-do. South Korea Tel: +82-31-779-7113 Fax: +82-31-779-7119 Email: info@tmax.co.kr Web (Korean): http://www.tmaxdata.com Technical Support: http://technet.tmaxsoft.com USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ 07632. U.S.A Tel: +1-201-567-8266 Fax: +1-201-567-7339 Email: info@tmaxsoft.com Web (English): http://www.tmaxsoft.com Russia Tmax Russia L.L.C. Grand Setun Plaza, No A204 Gorbunova st.2, Moscow, 121596 Tel: +7(495)970-01-35 Email: info.rus@tmaxsoft.com Web (Russian): http://ru.tmaxsoft.com Singapore Tmax Singapore Pte. Ltd. 430 Lorong 6, Toa Payoh #10-02, OrangeTee Building. Singapore 319402 Tel: +65-6259-7223 Email: info.sg@tmaxsoft.com United Kingdom TmaxSoft UK Ltd. Surrey House, Suite 221, 34 Eden Street, Kingston-Upon- Thames, KT1 1ER United Kingdom Tel: + 44-(0)20-8481-3776 Email: info.uk@tmaxsoft.com Web (English): http:/www.tmaxsoft.com Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073 Japan Tel: +81-3-5765-2550 Fax: +81-3-5765-2567 Email: info.jp@tmaxsoft.com Web (Japanese): http://www.tmaxsoft.co.jp China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2 North Rd Dong San Huan, Chaoyang District, Beijing, China, 100027. China Tel: +86-10-6410-6145~8 Fax: +86-10-6410-6144 Email: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn Brazil TmaxSoft Brazil Avenida Copacabana, 177-3 andar 18 do Forte Empresarial, Alphaville - Barueri, Sao Paulo, SP-Brasil CEP 06472-001 Email: contato.brasil@tmaxsoft.com TD-TRMO-D0714121 15