기술 정보
home
채널 소개
home

OS명령어를 통한 SQL 반복수행 (Linux)

문서 유형
기술 정보
분야
모니터링/점검
키워드
Linux
적용 제품 버전
5SP1FS01
5SP1FS02
5SP1FS03
5SP1FS04
5SP1FS06
6FS01
6FS02
6FS03
6FS04
6FS05
6FS06
6FS07
6FS07PS
7FS01
7FS02
7FS02PS

개요

부하상황분석, 세션 개수 및 상태 등을 모니터링 하기 위해서는 해당 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 --정상 동작 확인
SQL
복사

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
SQL
복사

3. 쉘 스크립트 백그라운드 수행

$ nohup sh /tibero/work/query.sql &
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 ....(생략)
SQL
복사

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
SQL
복사