관리 메뉴

開發

[ORACLE] Database 세션 확인하기(누가 접속했나~ 확인하기) 본문

2.1.데이터베이스(ORACLE)/1.ORACLE 관리

[ORACLE] Database 세션 확인하기(누가 접속했나~ 확인하기)

벅스쭌 2015.02.01 14:52

 

 

 

[C#] 제목입력하여 제목에 붙여넣기

 운영체제

 Windows7 64-bit

 최초 작성일

 2015/02/01

 프로그램 및 버전

 Oracle11g

 마지막 수정 작성일

 -

 

[주의사항]

 별도의 주의사항 없음

 

1. 작업개요

 운영중 오라클이 오류가 발생하는것을 확인하였고 아마 세션이 꽉찼다는 오류였을 것 입니다.

 어떤 프로세스들이 접속을해서 문제를 발생하는지 확인이 필요했습니다. 한개의 프로그램이 잘못된 정보로 Connect를 시도하는데... 문제는 한번 Connect를 시도하고 실패하면 해당 객체를 소멸시키고 새로 Connect를 했어야 했는데 소멸을 안시키고 또다른 객체를 생성해서 Connect를 시도하고 있었습니다.

 

2. 작업내용

1) 이 작업은 system 계정으로 들어가 확인을 해야 합니다.

 소스 및 이미지

 

 SELECT 
         s.status "Status", s.serial# "Serial#", s.TYPE "Type",
         s.username "DB User", s.osuser "Client User", s.server "Server",
         s.machine "Machine", s.module "Module", s.client_info "Client Info",
         s.terminal "Terminal", s.program "Program", p.program "O.S. Program",
         s.logon_time "Connect Time", lockwait "Lock Wait",
         si.physical_reads "Physical Reads", si.block_gets "Block Gets",
         si.consistent_gets "Consistent Gets",
         si.block_changes "Block Changes",
         si.consistent_changes "Consistent Changes", s.process "Process",
         p.spid, p.pid, si.sid, s.audsid, s.sql_address "Address",
         s.sql_hash_value "Sql Hash", s.action
    FROM v$session s, v$process p, sys.v_$sess_io si
    WHERE s.paddr = p.addr(+)
     AND si.sid(+) = s.sid
     AND (s.username IS NOT NULL)
     AND (NVL (s.osuser, 'x') <> 'SYSTEM')
     AND (s.TYPE <> 'BACKGROUND')
 ORDER BY 1

 

 설명

 위 스크립트를 실행하면 여러 값들이 나오는데 확인해보시면 아 이거구나 라고 아실 수 있습니다.

여기서 중요하게 봤던건 DB User, Machine, Program 인데요.

DB User는 말 그대로 오라클에 접속한 User 정보 입니다. 어느 User로 접속을 했는지 확인할 수 있습니다.

Machine은 네트워크로 접속된 서버나 PC의 이름으로 나옵니다. 만일 제 노트북의 컴퓨터 이름이 An이면 Machine 항목에는 An이라고 나옵니다.

Program도 말 그대로 실제로 접속한 프로그램 명이 나오게 됩니다. Oracle SQL Developer로 접속 했으면 SQL Developer 라고 표시되며 실행파일명과 exe 확장자까지 나오는 경우도 있습니다.

 

3. 작업결과

 

 

[참고 사이트]

 www.happytomorrow.net

 위 사이트를 참고 하였습니다.

 

 

0 Comments
댓글쓰기 폼