-
잡 스케줄러Platform/DB 2015. 11. 16. 13:06
현재 Oracle에 설정된 유저 프로세스 개수(processes) 확인
SQL> show parameter processes
ALTER SYSTEM SET JOB_QUEUE_PROCESSES = 10 ; --변경
oracle parameter 의 JOB_QUEUE_PROCESSES가 0보다 커야 JOB 스케줄링이 동작한다
DBMS_JOB 패키지
JOB QUEUE
JOB QUEUE PROCESS
JOB_QUEUE_PROCESSES 파라미터
c.f. 유닉스의 cron tab
JOB의 확인은
SELECT * FROM user_jobs;
VARIABLE jobno NUMBER
BEGIN
DBMS_JOB.SUBMIT(:jobno,
'DBMS_DDL.ANALYZE_OBJECT(''TABLE'',
''HR'', ''EMPLOYEES'',
''ESTIMATE'', NULL, 50);',
SYSDATE, 'SYSDATE + 1');
COMMIT;
END;
/
PRINT jobno
DECLARE
X NUMBER;
BEGIN
SYS.DBMS_JOB.SUBMIT
( job => X
,what => '실행할 object'
,next_date => to_date('17-11-2007 09:00:00','dd/mm/yyyy hh24:mi:ss')
,interval => 'TRUNC(SYSDATE) + 1 + 9/24'
,no_parse => TRUE
);
SYS.DBMS_OUTPUT.PUT_LINE('Job Number is: ' || to_char(x)); -- 이부분은 job큐의 번호가 됩니다.
END;
참조 사이트:
https://docs.oracle.com/cd/A97630_01/server.920/a96521/jobq.htm
http://www.gurubee.net/article/57263