728x90

1. DBMS_ALERT과 DBMS_ALERT_INFO란?
Oracle에서 제공하는 DBMS_ALERT 패키지는 세션 간 메시지를 교환하면서 비동기적인 알림 기능을 수행합니다. DBMS_ALERT_INFO는 이와 연계되어 alert 설정과 상태를 확인할 수 있는 실무용 뷰 및 헬퍼 프로시저 모음입니다. 특히 여러 세션이 대기(wait) 상태에서 특정 event name에 대해 알림을 받고 처리할 수 있어, OLTP나 알림 기반 처리 구조에 유용합니다.
2. 주요 기능 및 특장점 요약
| 기능 | 설명 |
|---|---|
| 비동기 알림 | 세션 간 publish/subscribe 방식으로 이벤트 전달 |
| 세션 모니터링 | 대기중인 세션 수와 응답 지연 시간 조회 가능 |
| 간단한 인터페이스 | PL/SQL 내에서 직접 호출 가능 |
3. DBMS_ALERT 관련 객체 요약 비교
| 구분 | DBMS_ALERT | DBMS_ALERT_INFO 뷰/패키지 |
|---|---|---|
| 역할 | 메시지 설정 및 알림 처리 | 상태 모니터링 및 알림 정보 제공 |
| 주요 객체 | SIGNAL, WAITONE, WAITANY | INFO 뷰, 헬퍼 함수 |
| 사용 위치 | 애플리케이션 로직 내 | DBA / 모니터링 툴 |
4. DBMS_ALERT_INFO 조회 및 활용 예시
다음은 alert 패키지와 정보를 조회하는 기본 예시입니다:
-- ALERT 대기 세션 개수 모니터링
SELECT count(*) AS waiting_sessions
FROM dba_alert_info
WHERE alert_name = 'MY_EVENT';
-- 가장 오래 대기 중인 세션 정보 확인
SELECT session_id, wait_time_sec
FROM dba_alert_info
WHERE alert_name = 'MY_EVENT'
ORDER BY wait_time_sec DESC;
5. 실무 활용 시나리오
- 실시간 알림 기반 처리: 데이터 입력 후 자동 처리 트리거 없이 통지형 로직 실행
- 성능 지연 감지: 특정 이벤트에 대기 중인 세션 누적 시 경고 메시지 전송
- 연동 시스템 알림: 메시징 큐 또는 외부 서비스와 연계하여 알림 처리
- 장애 대응 및 모니터링: DBA가 alert 상태를 실시간으로 조회하여 문제 상황 빠르게 대응
6. 사용 시 주의사항 및 한계
- DBMS_ALERT은 동일 DB 인스턴스 내에서만 동작하며, RAC와 분산 시스템에서는 제한적일 수 있음
- 대기 세션이 많아지면 시스템 리소스를 과도하게 사용 가능
- Alert 이름과 payload 크기 제한 존재 (최대 2000 byte)
- 보안 설정에서 remote PL/SQL 실행이 제한된 경우 동작하지 않을 수 있음
7. 고급 활용 전략
- DBMS_ALERT_INFO 기반 대시보드 구성: 웹 또는 콘솔 UI에서 대기 상태 및 응답 시간을 시각화
- 자동 cleanup 스크립트: 오래된 alert 정보 삭제 및 대기 세션 정리
- 혼합 시스템 통합: 애플리케이션 메시지 큐 또는 MQ 서비스와 연결 활용
BEGIN
FOR rec IN (
SELECT session_id
FROM dba_alert_info
WHERE wait_time_sec > 60
) LOOP
DBMS_ALERT.SIGNAL('ALERT_CLEANUP', rec.session_id);
END LOOP;
END;
8. 요약 비교 표
| 항목 | DBMS_ALERT | DBMS_ALERT_INFO 뷰 |
|---|---|---|
| 주요 목적 | 이벤트 발송 및 대기 | 대기 상태 모니터링 |
| 클라이언트 대상 | PL/SQL 세션 | DBA 및 관리 툴 |
| 데이터 제공 | 알림 내용 및 payload | 대기 세션, 대기 시간 정보 |
출처
- Oracle Database PL/SQL Packages and Types Reference 21c – Oracle Corporation
- Oracle Alert Programming with DBMS_ALERT – Oracle Docs
728x90
'Database > Oracle' 카테고리의 다른 글
| [ORACLE] USER_REGISTERED_SNAPSHOTS 완전 분석 : 사용자 소유 스냅샷 정보 파악과 관리 전략 (0) | 2025.07.31 |
|---|---|
| [ORACLE] DBMS_LOCK_ALLOCATED 완전 가이드 : 락 할당 상태 분석과 성능 최적화 전략 (0) | 2025.07.31 |
| [ORACLE] DATABASE_COMPATIBLE_LEVEL 완전 가이드 : 호환성 레벨 이해와 실무 적용 전략 (0) | 2025.07.30 |
| [ORACLE] COLUMN_PRIVILEGES 완전 분석 : 컬럼 단위 권한 파악과 보안 통제 전략 (0) | 2025.07.30 |
| [ORACLE] AUDIT_ACTIONS 뷰 완벽 분석 : 감사 코드 해석과 실무 적용 전략 (0) | 2025.07.30 |