DBMS_JOB 모니터링
2025. 2. 19. 08:00ㆍIT/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 |