DBMS_JOB 모니터링

2025. 2. 19. 08:00IT/Oracle

반응형

DBMS_JOB을 모니터링하는 방법은 여러 가지가 있으며, 주로 DBA_JOBS 또는 USER_JOBS 뷰를 조회하여 작업 상태를 확인할 수 있습니다. 다음은 주요 모니터링 방법입니다.


1. 현재 실행 중인 작업 확인

SELECT job, what, last_date, next_date, broken, failures
FROM dba_jobs
ORDER BY next_date;

• LAST_DATE: 마지막으로 실행된 시간
• NEXT_DATE: 다음 실행 예정 시간
 BROKEN: Y이면 중단된 작업
• FAILURES: 연속 실패 횟수


2. 특정 JOB의 상태 확인

SELECT job, what, last_date, next_date, failures, broken
FROM dba_jobs
WHERE job = <JOB_ID>;


 JOB_ID에 해당하는 특정 작업의 상태를 확인할 수 있음


3. 실행 중인 JOB 확인

SELECT job, what, sid, fail_count, last_date, next_date
FROM dba_jobs_running;


• 현재 실행 중인 DBMS_JOB 목록을 조회
• SID 값으로 V$SESSION과 조인하면 어떤 세션에서 실행 중인지 확인 가능


4. JOB 실행 내역 확인 (Alert Log 활용)

 DBMS_JOB 작업의 실행 내역을 확인하려면, 시스템 로그에서 관련 정보를 찾을 수도 있습니다.

SELECT log_id, job_name, status, actual_start_date, run_duration
FROM dba_scheduler_job_run_details
WHERE job_name = 'JOB_NAME'
ORDER BY actual_start_date DESC;


• DBMS_SCHEDULER를 사용한 경우 실행 내역을 확인할 수 있음
• DBMS_JOB 자체는 실행 내역을 따로 기록하지 않음


5. JOB이 실행되지 않을 경우 원인 분석

• BROKEN 여부 확인 (BROKEN='Y') → ALTER 문으로 BROKEN을 N으로 설정 가능

EXEC DBMS_JOB.BROKEN(<JOB_ID>, FALSE);


• JOB 실행 트리거 여부 확인

SHOW PARAMETER JOB_QUEUE_PROCESSES;


• JOB_QUEUE_PROCESSES 값이 0이면 실행되지 않음. 실행하려면 값을 증가시켜야 함:

ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 10;


• JOB 실행 강제 수행

EXEC DBMS_JOB.RUN(<JOB_ID>);


6. JOB 삭제 

EXEC DBMS_JOB.REMOVE(<JOB_ID>);
반응형

'IT > Oracle' 카테고리의 다른 글

CONCAT 함수의 인덱스 수행 여부(ㅇ)  (0) 2025.02.22
유형별 락(Lock)  (2) 2025.02.20
오라클 테이블 별 용량 확인 SQL 쿼리  (0) 2025.02.19
MERGE 문을 UPDATE 문으로 변경  (0) 2025.02.18
오라클 Lock  (0) 2025.02.16