DATABASE/Oracle
[ORACLE] JOB 생성, 활성화, 속성 변경, 중지, 활성화/비활성화
DBnA
2025. 3. 13. 18:01
728x90
반응형
job 사용과 관련한 내용 정리
begin
sys.dbms_scheduler.create_job(job_name => 'testdb."SJ_D-0100_CNT_TLZ"',
job_type => 'STORED_PROCEDURE',
job_action => 'testdb.UP_CNT_TLZ',
start_date => to_date('06-10-2022 01:00:00', 'dd-mm-yyyy hh24:mi:ss'),
repeat_interval => 'Freq=Daily;Interval=1', --매일 00:00:00 실행
end_date => to_date(null),
job_class => 'DEFAULT_JOB_CLASS',
enabled => true,
auto_drop => false,
comments => '건수 집계');
end;
/
--JOB 활성화
exec dbms_scheduler.enable('SJ_D-0100_CNT_TLZ') ;
-- 등록된 스케줄(잡)확인
select job_name
, job_type
, job_action
, cast(start_date as date) start_date
, cast(next_run_date as date) next_run_date
, repeat_interval
, enabled
, state
, run_count
, failure_count
from user_scheduler_jobs
where job_name = 'SJ_D-0100_CNT_TLZ'
;
--해당 job 실행 (오늘은 수기로, 다음날부터 스케줄링)
--exec dbms_scheduler.run_job('SJ_D-0100_CNT_TLZ');
--작업결과 확인
select log_date, actual_start_date, job_name, status
from user_scheduler_job_run_details
where job_name = 'SJ_D-0100_CNT_TLZ' ;
--스케줄러 로그 확인 쿼리
select * from user_scheduler_job_log where job_name='SJ_D-0100_CNT_TLZ' and status='FAILED';
-- job 속성 변경
exec dbms_scheduler.set_attribute(name => 'SJ_D-0100_CNT_TLZ',
attribute => 'repeat_interval',
value => 'Freq=Daily;ByHour=05;ByMinute=00;BySecond=00'); --실행주기 변경
--코멘트추가
begin
dbms_scheduler.set_attribute(name => 'testdb."SJ_D-0100_CNT_TLZ"',
attribute => 'comments',
value => 'comment~~작성 '); --실행주기 변경
end;
-- 즉시중지 : exec dbms_scheduler.stop_job('SJ_D-0100_CNT_TLZ') ; --실행중인 job
-- 비활성화 : exec dbms_scheduler.disable('SJ_D-0100_CNT_TLZ') ;
-- 다시시작 : exec dbms_scheduler.enable('SJ_D-0100_CNT_TLZ');
-- 삭제 : exec dbms_scheduler.drop_job('SJ_D-0100_CNT_TLZ') ;
-- 실행 : exec dbms_scheduler.run_job('SJ_D-0100_CNT_TLZ') ;
job 로그가 success여도 작업이 안된경우있음 -> 이럴땐 job_action 내용확인 , 에러발생시 에러 무시하는 로직 있을지도
728x90
반응형