세션 상태와 운영 점검
지금 접속한 컨테이너와 계정, 현재 세션의 서버 프로세스 OS PID, 해결되지 않은 경보를 조회하는 운영 점검 SQL
#핵심 요약
SYS_CONTEXT('USERENV',...)로 현재 컨테이너, 컨테이너 ID, DB 이름, 접속 계정, 서비스 이름을 한 번에 봄
V$SESSION과 V$PROCESS를 이어 현재 세션을 처리하는 서버 프로세스의 OS PID를 봄
DBA_OUTSTANDING_ALERTS로 아직 해결되지 않은 경보를 봄
#필수 명령어 또는 SQL
#지금 어디에 누구로 접속했는지
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
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 결과와 맞춰 볼 때 씀
#해결되지 않은 경보
SELECT * FROM dba_outstanding_alerts;결과 해석:
실습에서는 "이슈사항 히스토리"라고 적었지만 뷰 이름은 해결되지 않은(outstanding) 경보를 뜻함
해결된 경보 이력을 보는 뷰는 기재 없음
Oracle Database 19c 기준으로 DBA_OUTSTANDING_ALERTS는 서버가 미해결 상태로 판단하는 경보임
더 이상 미해결 상태가 아닌 경보의 제한된 기간 이력은 DBA_ALERT_HISTORY로 구분함
위 조회에는 전체 장애 이력이나 해결된 경보의 전체 이력이 나오지 않음
#사용 조건과 주의사항
감사 이력 조회(UNIFIED_AUDIT_TRAIL)는 감사와 보안 상태 조회에서 다룸
같은 실습의 PDB별 SGA 파라미터 조회는 메모리 관리 방식에 있음