수행시킬 수 있다. DBMS_JOB package를 이용하여 수행시킬 수 있는데,
이것을 위해서는 SNP background process가 start되어 있어야 한다.
SNP process가 올라온다.
-> 이 파라미터는 snp process를 몇 개 띄울지를 결정한다.
default=0
-> 이 파라미터는 snp process가 깨어나는 간격을 초로 설정한다.
DBMS_JOB Package는 다음과 같은 procedure를 이용하여 사용한다.
what in varchar2,
next_date in date defalut sysdate,
interval in varchar2 default 'null',
no_parse in boolean default false)
수행할 수 있도록 한다. 다음의 예제를 통하여 실제 사용법을 알아보자.
dbms_job.submit(:jobno,
-- job 의 번호
'insert into scott.testdate values(1, sysdate);',
-- job의 내용 : ' '으로 감싸준다.
-- procedure를 실행하는 경우 ' username.procedure_name;' 만 쓰면 된다.
-- job이 실행될 시간
-- job이 실행되는 간격 , 위의 경우는 5분마다 실행하도록 했다.
-- ' '으로 감싸준다.
end;
/
SQL> @jobcre
SQL> print jobno -- job 번호 확인 : 여기서는 166번
SQL> exec dbms_job.run(166);
SQL> commit;
job 실행 여부를 알아보기 위해서 다음의 sql 문장을 수행한다.
from user_jobs;
SQL> exec dbms_job.run(jobno);
- job의 강제 실행, job이 16번 fail되어 broken된 경우는
위의 명령어로 강제로 run을 시켜서 실행되면 다시 interval마다
실행된다.
- job을 disable시킴
- job의 삭제
======================
snapshot 도 job 으로 등록되어 돌아갑니다.
즉, select job, what from dba_jobs; 를 조회하면,
what 부분에 snapshot 이 정의되어 있습니다.
interval 시간 지정 예제
======================
sysdate + 1/24/6 또는 sysdate + 1/144
-> 1/24 (1시간-60분) / 6 : 10분 단위
1/144 : 24*6 으로 나누어도 같은 의미가 된다.
2. 1분에 한번으로 지정하는 경우
3. 매일 새벽 2시로 지정하는 경우
4. 매일 밤 11시로 지정하는 경우