데이터베이스 연구실.log

세션 상태와 운영 점검

지금 접속한 컨테이너와 계정, 현재 세션의 서버 프로세스 OS PID, 해결되지 않은 경보를 조회하는 운영 점검 SQL

SYS_CONTEXTV$SESSIONV$PROCESSOS PIDDBA_OUTSTANDING_ALERTS

#핵심 요약

SYS_CONTEXT('USERENV',...)로 현재 컨테이너, 컨테이너 ID, DB 이름, 접속 계정, 서비스 이름을 한 번에 봄

V$SESSION과 V$PROCESS를 이어 현재 세션을 처리하는 서버 프로세스의 OS PID를 봄

DBA_OUTSTANDING_ALERTS로 아직 해결되지 않은 경보를 봄

#필수 명령어 또는 SQL

#지금 어디에 누구로 접속했는지

SQL*Plus조회만 함
SELECT SYS_CONTEXT('USERENV','CON_NAME')     AS 현재컨테이너
, SYS_CONTEXT('USERENV','CON_ID')       AS 콘아이디
, SYS_CONTEXT('USERENV','DB_NAME')      AS DB이름
, SYS_CONTEXT('USERENV','SESSION_USER') AS 접속계정
, SYS_CONTEXT('USERENV','SERVICE_NAME') AS 서비스명
  FROM dual;

결과 해석:

멀티테넌트에서 명령을 실행하기 전에 CDB$ROOT인지 PDB인지 확인하는 용도로 쓸 수 있음

#현재 세션의 OS PID

SQL*Plus조회만 함
SELECT s.sid, s.serial#, s.username, p.spid os_pid, s.logon_time
  FROM v$session s, v$process p
 WHERE s.paddr = p.addr
   AND s.sid = SYS_CONTEXT('USERENV','SID');

결과 해석:

SPID가 OS에서 보이는 서버 프로세스 번호임
OS 쪽 ps 결과와 맞춰 볼 때 씀

#해결되지 않은 경보

SQL*Plus조회만 함
SELECT * FROM dba_outstanding_alerts;

결과 해석:

실습에서는 "이슈사항 히스토리"라고 적었지만 뷰 이름은 해결되지 않은(outstanding) 경보를 뜻함
해결된 경보 이력을 보는 뷰는 기재 없음

Oracle Database 19c 기준으로 DBA_OUTSTANDING_ALERTS는 서버가 미해결 상태로 판단하는 경보임
더 이상 미해결 상태가 아닌 경보의 제한된 기간 이력은 DBA_ALERT_HISTORY로 구분함
위 조회에는 전체 장애 이력이나 해결된 경보의 전체 이력이 나오지 않음

#사용 조건과 주의사항

감사 이력 조회(UNIFIED_AUDIT_TRAIL)는 감사와 보안 상태 조회에서 다룸

같은 실습의 PDB별 SGA 파라미터 조회는 메모리 관리 방식에 있음

SEO_HKabsumveritas@gmail.comBuilt with Claude Code & Codex

마지막 갱신 개인 학습 기록이며 운영 환경 적용 전 공식 문서 확인 필요

두 글자 이상 입력, 위아래 화살표로 이동하고 Enter로 열기