2023. 3. 29. 22:49 오라클
session 정보보기 (매번 sqlplus 접속없이 주기적으로 모니터링)
아래와 같이 작성하여 sqlplus 매번 접속없이 스크립트로 받아서 모니터링 하기.
최종적으로 실행은 아래와 같이 작성한다.
sh session.sh | sqlplus -L -S > session_$(date +%Y_%m_%d_%H:%M).log
- 스크립트 내용
vi session.sh
#!/usr/bin/ksh
SLEEP_SEC=1
LOOP_MAX=100000
COUNT=0
echo "system/manager"
while [ $COUNT -lt $LOOP_MAX ]
do
echo "@session.sql"
sleep $SLEEP_SEC
COUNT=`expr $COUNT + 1`
done
======================================
session.sql 의 내용 (내용은 구미에 맞게 수정하도록 한다)
--
-- Session Monitor
--
set verify off
set echo off
col sid format 99990
col serial# format 99990
col pid format 99999
col spid format a8
col process format a8
col username format a10
col program format a24 trunc
col machine format a12 trunc
col module format a15 trunc
col status format a8
col lockwait format a4
select /*+ rule */
s.sid,
s.serial#,
-- p.pid,
p.spid,
-- s.process,
s.username,
replace(s.program,'(TNS V1-V3)','') program,
replace(s.machine,'(TNS V1-V3)','') machine,
s.module,
-- s.terminal,
s.status,
-- decode(s.lockwait, null, '', 'WAIT')
-- s.client_info
s.logon_time,
s.last_call_et
from v$session s, v$process p
where s.paddr = p.addr
and type <> 'BACKGROUND'
-- and s.username <> 'SYS'
-- and s.logon_time > '2023/02/11 19:43:00'
-- order by s.logon_time, s.program, s.module, spid
order by s.status
/