개발 & 데이터베이스/DB

오라클 잡 스케줄러 생성 및 실행 방법

K.두부 2022. 1. 28. 10:42
반응형

잡 스케줄러 정의

주기적으로 수행되는 쿼리나 프로시저 등을 시간, 일, 월 단위로 실행하는 동작, 쉽게 말해서 매크로

 

잡 스케줄러 생성

DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT(
  job => X
, what => '프로시저명;'
, next_date => to_date('04-02-2021 20:29:24', 'dd/mm/yyyy hh24:mi:ss')
, interval => 'SYSDATE +1/24/6'
, no_parse => FALSE
);
SYS.dbms_output.put_line('Job Number is : ' ||to_char(x));
commit;
END;
/
  • job : 실행 job number
  • what : 실행할 PL/SQL 프로시저 명
  • next_data : job의 시작 날짜 지정
  • interval : job을 수행한 후 다음 실행 시간까지의 시간을 지정
  • no_parse : TRUE면 SUBMIT 시에 job을 parsing 하지 않음

 

※ job interval 시간 설정

시간 의미
SYSDATE + 7 7일에 한 번
SYSDATE + 1/24 1시간에 한 번
SYSDATE + 30/86400 30초에 한 번
SYSDATE + 1/1440 1분에 한 번
SYSDATE + 7 + 1/86400 1초에 한 번
SYSDATE + 1/24/6 10분에 한 번

 

잡 스케줄러 내 프로시저 구성

1. DB에 추가된 job을 삭제

DBMS_JOB.REMOVE(job number);

 

2. DB에 저장되어 있는 job의 field들을 변경

DBMS_JOB.JOB_CHANGE(job number, what, next_data, interval);

 

3. job이 수행하는 작업을 변경

DBMS_JOB.WHAT(job number, what);

 

4. job이 Tibero에 의해 자동으로 실행될 때를 변경 

DBMS_JOB.NEXT_DATE(job number, next_data);

 

5. job 실행주기 파라미터를 변경

DBMS_JOB.JOB_INTERVAL(job number, interval);

 

6. DB에 저장되어 있는 jobd의 상태를 정상 or Broken 상태로 설정 

DBMS_JOB.JOB_BROKEN(job number, broken, next_data);

 

7. job을 현재 seesion에서 즉시 수행

DBMS_JOB.JOB_RUN(job number);

 

잡 스케줄러 실행

1. 프로시저 생성하기

 

ORACLE 프로시저 생성 및 커서 사용 방법

PL/SQL 정의 오라클에서 프로시저 작성을 위해 사용하는 문법 다른 데이터베이스에서 사용 불가능 프로시저 정의 자주 사용하는 구문을 하나의 이름으로 사용 함수는 반드시 리턴을 해야하지만

sookr5416.tistory.com

 

2. 잡 스케줄러 생성하기

DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT(
  job => X
, what => 'TEST;'                  -- TEST 라는 이름의 프로시저
, next_date => to_date('04-02-2021 20:29:24', 'dd/mm/yyyy hh24:mi:ss')
, interval => 'SYSDATE +1/24/6'    -- 10분마다 실행
, no_parse => FALSE
);
SYS.dbms_output.put_line('Job Number is : ' ||to_char(x));
commit;
END;
/

 

3. 잡 스케줄러 실행하기

 

4. 잡 스케줄러 실행 확인하기

SELECT * FROM USER_JOBS;

  • LAST_DATA, LAST_SEC : 잡 스케줄러가 실행된 시간 확인
  • NEXT_DATA, NEXT_SEC : 잡 스케줄러가 다음에 실행된 시간 확인
  • WHAT : 어떤 잡 스케줄러가 실행되는지 확인
반응형