아래와 같이 작성하여 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
/


Posted by pat98

05-19 05:17
Flag Counter
Yesterday
Today
Total

글 보관함

최근에 올라온 글

달력

 « |  » 2024.5
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

최근에 달린 댓글