[Oracle] 오라클 스케줄러 사용법 & 예제
- DB/Oracle
- 2019. 12. 29.
오라클 잡과 스케줄러
데이터베이스를 운영하다보면 하루에 한번씩 운영서버의 데이터를 개발서버에 데이터를 넣어주거나 하는 주기적인 작업을 처리할 때가 있습니다. 이렇게 일정한 주기의 작업을 잡(Job)이라고 합니다. 이러한 주기적인 잡을 수행하는 방법은 스케줄러를 활용하는 방법이 있습니다.
오라클 스케줄러 (DBMS_SCHEDULER)
기존에는 주기적인 작업을 잡 패키지(DBMS_JOB)라는 것을 활용하여 작업을 하였지만 다양한 문제점으로 인해 오라클 10g부터 새로운 스케줄러 패키지인 오라클 스케줄러 (DBMS_SCHEDULER)라는 패키지가 추가되었습니다. 최근에는 이 오라클 스케줄러라는 패키지를 통해서 주기적인 잡(Job)을 처리합니다.
오라클 스케줄링 사용법
잡 객체를 이용한 스케줄링
BEGIN
DBMS_SCHEDULER.CREATE_JOB
(
JOB_NAME => 'EX_JOB',
JOB_TYPE => 'STORED_PROCEDURE',
JOB_ACTION => 'EX_PROC',
REPEAT_INTERVAL => 'FREQ=MINUTELY; INTERVAL =1', --1분에 1번
COMMENTS => '잡객체 1'
);
END;
위의 쿼리를 풀어서 말해보자면 EX_JOB이라는 이름의 잡이 EX_PROC라는 프로시저를 1분에 1번씩 실행한다는 말입니다.
잡 생성 내역 확인
SELECT
JOB_NAME,
JOB_TYPE,
JOB_ACTION,
REPEAT_INTERVAL,
ENABLED,
AUTO_DROP,
STATE,
COMMENTS
FROM
USER_SCHEDULER_JOBS
잡의 전체 목록은 USER_SCHEDULER_JOBS라는 테이블안에서 확인할 수 있습니다.
잡 실행
BEGIN
DBMS_SCHEDULER.ENABLE ('EX_JOB');
END;
잡을 처음 생성하면 비활성화 ENABLE = FALSE 상태로 존재합니다. 잡을 활성화 시키려면 위의 코드를 실행시켜주면 그 즉시 잡은 활성상태 ENABLE = TRUE 에 들어갑니다.
잡 객체 실행로그 확인
SELECT * FROM USER_SCHEDULER_JOB_LOG;
SELECT * FROM USER_SCHEDULER_JOB_RUN_DETAILS;
잡의 실행 로그는 위의 테이블에서 확인할 수 있습니다.
'DB > Oracle' 카테고리의 다른 글
[Oracle] 로컬 인덱스와 글로벌 인덱스에 대하여 (파티션 테이블 인덱스) (0) | 2022.06.27 |
---|---|
[Oracle] 오라클 실행 계획 확인하기 (EXPLAIN PLAN, SET AUTORACE, SQL TRACE) (0) | 2021.06.28 |
[Oracle] 오라클 계층형 쿼리(START WITH.. CONNECT BY) (14) | 2019.12.28 |
[Oracle] 오라클 열을 행으로 변환하기 (UNPIVOT) (2) | 2019.12.27 |