본문 바로가기

콩's EDUCATION/콩's DATABASE

ORACLE 스케줄러 등록 방법

세션 킬 관련하여 스케줄러 등록하면서 방법을 전달드려요.


참고한 출처는 아래와 같습니다.

[ADMIN ID님]

http://adminid.kr/oracle/51350


DBA권한에서 CREATE 권한을 부여합니다.


GRANT CREATE ANY JOB TO 계정명;


-- 동작 프로그램 설정

BEGIN

DBMS_SCHEDULER.CREATE_PROGRAM(

program_name => 'KILL_SESSION_PROGRAM',

program_action => 'KILL_SESSION',

program_type => 'STORED_PROCEDURE',

comments => 'KILL SESSION EVERY 1 HOUR PROGRAM',

enabled => TRUE);

END;


-- 동작 스케줄러 설정

BEGIN

DBMS_SCHEDULER.CREATE_SCHEDULE(

schedule_name=>'KILL_SESSION_SCHEDULE',

start_date=>TRUNC(SYSDATE)+7/24, 

END_DATE=>null,

repeat_interval=>'FREQ=HOURLY;INTERVAL=1;',

comments=>'KILL_SESSION_EVERY_HOUR');

END;


-- 실제 실행될 JOB 설정

BEGIN

DBMS_SCHEDULER.CREATE_JOB (

job_name =>'KILL_SESSION_JOB',

program_name =>'KILL_SESSION_PROGRAM',

schedule_name =>'KILL_SESSION_SCHEDULE',

comments => 'KILL_SESSION_JOB_EVERY_1HOUR',

enabled =>TRUE);

END;


-- JOB 삭제

BEGIN

   DBMS_SCHEDULER.DROP_JOB(                       

        JOB_NAME   => 'KILL_SESSION_JOB',

        FORCE      => FALSE);                

END;


-- SCHEDULAR 삭제

BEGIN

   DBMS_SCHEDULER.DROP_SCHEDULE(                       

        SCHEDULE_NAME   => 'KILL_SESSION_SCHEDULE',

        FORCE      => FALSE);                

END;


-- PROGRAM 삭제

BEGIN

   DBMS_SCHEDULER.DROP_PROGRAM(                       

        PROGRAM_NAME   => 'KILL_SESSION_PROGRAM',

        FORCE      => FALSE);                

END;


-- 등록된 JOB 수정 (NULL 수정시)

 DBMS_SCHEDULER.SET_ATTRIBUTE(_NULL) (

      name      IN VARCHAR2,

      attribute IN VARCHAR2,

      value     IN {BOOLEAN|DATE|TIMESTAMP|TIMESTAMP WITH 

                       TIME ZONE|TIMESTAMP WITH LOCAL TIME ZONE| INTERVAL DAY TO SECOND});


-- 등록된 JOB 확인

SELECT * FROM USER_SCHEDULER_JOBS;


-- JOB 로그

SELECT * FROM USER_SCHEDULER_JOB_LOG;


-- 등록된 Program 확인

SELECT * FROM USER_SCHEDULER_PROGRAMS;


-- 등록된 Schedule 확인

SELECT * FROM USER_SCHEDULER_SCHEDULES;


-- 등록된 JOB 실행

EXEC DBMS_JOB.RUN(90);


-- 등록된 JOB 중지

EXEC DBMS_JOB.BROKEN(JOBNO, TRUE);



해당 변수에 대한 정보는 출처를 참고부탁드립니다.


https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_sched.htm#BABEJGCH
https://thebook.io/006696/part03/ch15/02/03/05-1/


부족한 정보는 ORACLE API 및 더북 출처를 참고 바랍니다.