문서유형ㅣ기술정보
분야ㅣ모니터링/점검
적용제품버전ㅣ5SP1FS01, 5SP1FS02, 5SP1FS03, 5SP1FS04, 5SP1FS06, 6FS01, 6FS02, 6FS03, 6FS04, 6FS05, 6FS06, 6FS07, 6FS07PS, 7FS01, 7FS02, 7FS02PS
문서번호ㅣTMOTI013
개요
부하상황분석, 세션 개수 및 상태 등을 모니터링 하기 위해서는 해당 SQL의 반복 수행이 필요합니다.
이 때 OS명령어와 SQL을 조합해 반복 수행 작업을 편리하게 할 수 있는 방법을 안내합니다.
방법
1. SQL 생성
TAC환경에서 WAS1, WAS2로 DB에 접속하는 세션의 상태 모니터링 쿼리를 생성합니다.
$ vi query.sql
SELECT (SELECT TO_CHAR(SYSDATE,'YYYYMMDD HH24:MI:SS') FROM DUAL) DT
, A.*
FROM ( SELECT INST_ID, STATUS, COUNT(1) FROM GV$SESSION
WHERE MACHINE IN('WAS1','WAS2') GROUP BY INST_ID, STATUS) A;
$ tbsql sys/tibero
SQL> @query.sql
DT INST_ID STATUS COUNT(1)
----------------- ---------- ---------- ----------
20250509 16:15:17 1 READY 1995
20250509 16:15:17 1 RUNNING 5
20250509 16:15:17 2 READY 1394
20250509 16:15:17 2 RUNNING 6
--정상 동작 확인
2. 반복문 쉘 스크립트 생성
loop.sh를 생성하고 sql의 수행 결과는 test.txt로 받습니다.
$vi loop.sh while true; do tbsql -s sys/tibero @/tibero/work/query.sql >> test.txt sleep 2 done
3. 쉘 스크립트 백그라운드 수행
$ nohup sh /tibero/work/query.sql &
4. 모니터링
반복적으로 sql이 수행 되는 것을 확인할 수 있습니다.
$ tail -f test.txt DT INST_ID STATUS COUNT(1) ----------------- ---------- ---------- ---------- 20250509 16:16:23 1 READY 1995 20250509 16:16:23 1 RUNNING 5 20250509 16:16:23 2 READY 1394 20250509 16:16:23 2 RUNNING 6 DT INST_ID STATUS COUNT(1) ----------------- ---------- ---------- ---------- 20250509 16:16:25 1 READY 1995 20250509 16:16:25 1 RUNNING 5 20250509 16:16:25 2 READY 1394 20250509 16:16:25 2 RUNNING 6 ....(생략)
5. 종료
$ ps -ef| grep loop tibero 2239 1951 0 04:35 pts/0 00:00:00 sh loop.sh tibero 2378 1951 0 04:35 pts/0 00:00:00 grep --color=auto loop $ kill -9 2239 [1]+ Killed nohup sh loop.sh