ÉèΪÊ×Ò³ ¼ÓÈëÊÕ²Ø

TOP

oracle dbms_job:ÿ¸ôÌض¨Ê±¼äÖ´ÐÐÌض¨ÈÎÎñ(Ò»)
2014-11-24 01:43:21 ¡¾´ó ÖРС¡¿ ä¯ÀÀ:460´Î
Tags£ºoracle dbms_job: Ìض¨ ʱ¼ä Ö´ÐÐ ÈÎÎñ

Oracle JOB:
Ò»¡¢ÉèÖóõʼ»¯²ÎÊý job_queue_processes
sql> alter system set job_queue_processes=n;£¨n>0£©
job_queue_processes×î´óֵΪ1000
²é¿´job queue ºǫ́½ø³Ì
sql>select name,description from v$bgprocess;
¶þ¡¢dbms_job package Ó÷¨½éÉÜ
°üº¬ÒÔÏÂ×Ó¹ý³Ì£º
Broken()¹ý³Ì¡£
change()¹ý³Ì¡£
Interval()¹ý³Ì¡£
Isubmit()¹ý³Ì¡£
Next_Date()¹ý³Ì¡£
Remove()¹ý³Ì¡£
Run()¹ý³Ì¡£
Submit()¹ý³Ì¡£
User_Export()¹ý³Ì¡£
What()¹ý³Ì¡£
1¡¢Broken()¹ý³Ì¸üÐÂÒ»¸öÒÑÌá½»µÄ¹¤×÷µÄ״̬£¬µäÐ͵ØÊÇÓÃÀ´°ÑÒ»¸öÒÑÆƹ¤×÷±ê¼ÇΪδÆƹ¤×÷
Õâ¸ö¹ý³ÌÓÐÈý¸ö²ÎÊý£ºjob ¡¢brokenÓënext_date¡£
PROCEDURE Broken ( job¡¡ IN binary_integer,
Broken¡¡¡¡IN boolean,
next_date IN date :=SYSDATE)
job²ÎÊýÊǹ¤×÷ºÅ£¬ËüÔÚÎÊÌâÖÐΨһ±êʶ¹¤×÷¡£
broken²ÎÊýָʾ´Ë¹¤×÷ÊÇ·ñ½«±ê¼ÇΪÆÆ¡ª¡ªTRUE˵Ã÷´Ë¹¤×÷½«±ê¼ÇΪÆÆ£¬¶øFLASE˵Ã÷´Ë¹¤×÷½«±ê¼ÇΪδÆÆ¡£
next_date²ÎÊýָʾÔÚʲôʱºò´Ë¹¤×÷½«ÔÙ´ÎÔËÐС£´Ë²ÎÊýȱʡֵΪµ±Ç°ÈÕÆÚºÍʱ¼ä¡£
jobÈç¹ûÓÉÓÚijÖÖÔ­ÒòδÄܳɹ¦Ö®ÐУ¬oracle½«ÖØÊÔ16´Îºó£¬»¹Î´Äܳɹ¦Ö´ÐУ¬½«±»±ê¼ÇΪbrokenÖØÐÂÆô¶¯×´Ì¬ÎªbrokenµÄjob£¬ÓÐÈçÏÂÁ½ÖÖ·½Ê½;
a¡¢ÀûÓÃdbms_job.run()Á¢¼´Ö´ÐиÃjob
sql>begin
sql>dbms_job.run(:jobno) ¸ÃjobnoΪsubmit¹ý³ÌÌύʱ·µ»ØµÄjob number
sql>end;
sql>/
b¡¢ÀûÓÃdbms_job.broken()ÖØн«broken±ê¼ÇΪfalse
sql>begin
sql>dbms_job.broken (:job,false,next_date)
sql>end;
sql>/
2¡¢Change()¹ý³ÌÓÃÀ´¸Ä±äÖ¸¶¨¹¤×÷µÄÉèÖá£
Õâ¸ö¹ý³ÌÓÐËĸö²ÎÊý£ºjob¡¢what ¡¢next_dateÓëinterval¡£
PROCEDURE Change ( job¡¡¡¡¡¡¡¡ IN binary_integer,
What¡¡¡¡¡¡ IN varchar2,
next_date¡¡ IN date,
interval¡¡ IN varchar2)
´Ëjob²ÎÊýÊÇÒ»¸öÕûÊýÖµ£¬ËüΨһ±êʶ´Ë¹¤×÷¡£
What²ÎÊýÊÇÓɴ˹¤×÷ÔËÐеÄÒ»¿éPL/SQL´úÂë¿é¡£
next_date²ÎÊýָʾºÎʱ´Ë¹¤×÷½«±»Ö´ÐС£
interval²ÎÊýָʾһ¸ö¹¤×÷ÖØÖ´ÐеÄƵ¶È¡£
3¡¢Interval()¹ý³ÌÓÃÀ´ÏÔʽµØÉèÖÃÖØÖ´ÐÐÒ»¸ö¹¤×÷Ö®¼äµÄʱ¼ä¼ä¸ôÊý¡£Õâ¸ö¹ý³ÌÓÐÁ½¸ö²ÎÊý£ºjobÓëinterval¡¡¡¡
PROCEDURE Interval ( job¡¡¡¡¡¡IN binary_integer,
Interval IN varchar2)
job²ÎÊý±êʶһ¸öÌض¨µÄ¹¤×÷¡£interval²ÎÊýָʾһ¸ö¹¤×÷ÖØÖ´ÐеÄƵ¶È¡£
4¡¢ISubmit()¹ý³ÌÓÃÀ´ÓÃÌض¨µÄ¹¤×÷ºÅÌá½»Ò»¸ö¹¤×÷¡£Õâ¸ö¹ý³ÌÓÐÎå¸ö²ÎÊý£ºjob¡¢what¡¢next_date¡¢intervalÓëno_parse¡¡¡¡
PROCEDURE ISubmit ( job¡¡¡¡¡¡ IN binary_ineger,
What¡¡¡¡¡¡IN varchar2,
next_date IN date,
interval¡¡ IN varchar2,
no_parse¡¡IN booean:=FALSE)
Õâ¸ö¹ý³ÌÓëSubmit()¹ý³ÌµÄΨһÇø±ðÔÚÓÚ´Ëjob²ÎÊý×÷ΪINÐͲÎÊý´«µÝÇÒ°üÀ¨Ò»¸öÓÉ¿ª·¢ÕßÌṩµÄ¹¤×÷ºÅ¡£Èç¹ûÌṩµÄ¹¤×÷ºÅÒѱ»Ê¹Ó㬽«²úÉúÒ»¸ö´íÎó¡£
5¡¢Next_Date()¹ý³ÌÓÃÀ´ÏÔʽµØÉ趨һ¸ö¹¤×÷µÄÖ´ÐÐʱ¼ä¡£Õâ¸ö¹ý³Ì½ÓÊÕÁ½¸ö²ÎÊý£ºjobÓënext_date¡¡¡¡
PROCEDURE Next_Date( job¡¡¡¡¡¡¡¡ IN binary_ineger,
next_date¡¡ IN date)
job±êʶһ¸öÒÑ´æÔڵŤ×÷¡£next_date²ÎÊýָʾÁ˴˹¤×÷Ó¦±»Ö´ÐеÄÈÕÆÚÓëʱ¼ä¡£
6¡¢Remove()¹ý³ÌÀ´É¾³ýÒ»¸öÒѼƻ®ÔËÐеŤ×÷¡£Õâ¸ö¹ý³Ì½ÓÊÕÒ»¸ö²ÎÊý£º¡¡
PROCEDURE Remove(job IN¡¡binary_ineger);
job²ÎÊýΨһµØ±êʶһ¸ö¹¤×÷¡£Õâ¸ö²ÎÊýµÄÖµÊÇÓÉΪ´Ë¹¤×÷µ÷ÓÃSubmit()¹ý³Ì·µ»ØµÄjob²ÎÊýµÄÖµ¡£ÒÑÕýÔÚÔËÐеŤ×÷²»ÄÜÓɵ÷Óùý³ÌÐòɾ³ý¡£
7¡¢Run()¹ý³ÌÓÃÀ´Á¢¼´Ö´ÐÐÒ»¸öÖ¸¶¨µÄ¹¤×÷¡£Õâ¸ö¹ý³ÌÖ»½ÓÊÕÒ»¸ö²ÎÊý£º
PROCEDURE Run(job IN binary_ineger)
job²ÎÊý±êʶ½«±»Á¢¼´Ö´ÐеŤ×÷¡£
8¡¢Ê¹ÓÃSubmit()¹ý³Ì£¬¹¤×÷±»Õý³£µØ¼Æ»®ºÃ
Õâ¸ö¹ý³ÌÓÐÎå¸ö²ÎÊý£ºjob¡¢what¡¢next_date¡¢intervalÓëno_parse¡£
PROCEDURE Submit ( job¡¡¡¡¡¡ OUT binary_ineger,
What¡¡¡¡¡¡IN¡¡varchar2,
next_date IN¡¡date,
interval¡¡ IN¡¡varchar2,
no_parse¡¡IN¡¡booean:=FALSE)
job²ÎÊýÊÇÓÉSubmit()¹ý³Ì·µ»ØµÄbinary_ineger¡£Õâ¸öÖµÓÃÀ´Î¨Ò»±êʶһ¸ö¹¤×÷¡£
what²ÎÊýÊǽ«±»Ö´ÐеÄPL/SQL´úÂë¿é¡£
next_date²ÎÊýָʶºÎʱ½«ÔËÐÐÕâ¸ö¹¤×÷¡£
interval²ÎÊýºÎʱÕâ¸ö¹¤×÷½«±»ÖØÖ´ÐС£
no_parse²ÎÊýָʾ´Ë¹¤×÷ÔÚÌύʱ»òÖ´ÐÐʱÊÇ·ñÓ¦½øÐÐÓï·¨·ÖÎö¡ª¡ªTRUEָʾ´ËPL/SQL´úÂëÔÚËüµÚÒ»´ÎÖ´ÐÐʱӦ½øÐÐÓï·¨·ÖÎö£¬¶øFALSEָʾ±¾PL/SQL´úÂëÓ¦Á¢¼´½øÐÐÓï·¨·ÖÎö¡£
9¡¢User_Export()¹ý³Ì·µ»ØÒ»¸öÃüÁ´ËÃüÁîÓÃÀ´°²ÅÅÒ»¸ö´æÔڵŤ×÷ÒÔ±ã´Ë¹¤×÷ÄÜÖØÐÂÌá½»
´Ë³ÌÐòÓÐÁ½¸ö²ÎÊý£ºjobÓëmy_call¡£
PROCEDURE User_Export( job¡¡¡¡¡¡ IN binary_ineger,
my_call¡¡¡¡IN OUT varchar2)
job²ÎÊý±êʶһ¸ö°²ÅÅÁ˵Ť×÷¡£my_call²ÎÊý°üº¬ÔÚËüµÄµ±Ç°×´Ì¬ÖØÐÂÌá½»´Ë¹¤×÷ËùÐèÒªµÄÕýÎÄ¡£
10¡¢What()¹ý³ÌÓ¦ÐíÔÚ¹¤×÷Ö´ÐÐʱÖØÐÂÉèÖôËÕýÔÚÔËÐеÄÃüÁî¡£Õâ¸ö¹ý³Ì½ÓÊÕÁ½¸ö²ÎÊý£ºjobÓëwhat¡¡¡¡
PROCEDURE What ( job¡¡ IN binary_ineger,
What IN OUT varchar2)
job²ÎÊý±êʶһ¸ö´æÔڵŤ×÷¡£what²ÎÊýָʾ½«±»Ö´ÐеÄеÄPL/SQL´úÂë¡£
Èý¡¢²é¿´Ïà¹ØjobÐÅÏ¢
1¡¢Ïà¹ØÊÓͼ
dba_jobs
all_jobs
user_jobs
dba_jobs_running °üº¬ÕýÔÚÔËÐÐjobÏà¹ØÐÅÏ¢
2¡¢²é¿´Ïà¹ØÐÅÏ¢
SQL>select JOB, NEXT_DATE, NEXT_SEC, FAILURES, BROKEN FROM DBA_JOBS;
ÕýÔÚÔËÐеÄJOBÏà¹ØÐÅÏ¢
select SID, r.JOB, LOG_USER, r.THIS_DATE, r.THIS_SEC
FROM DBA_JOBS_RUNNING r, DBA_JOBS j
where r.JOB = j.JOB;
JOB QUEUE LOCKÏà¹ØÐÅÏ¢
select SID, TYPE, ID1, ID2 FROM V$LOCK where TYPE = ¡¯JQ¡¯;
ËÄ¡¢¼òµ¥Àý×Ó
Ò»¸ö¼òµ¥Àý×Ó£º
´´½¨²âÊÔ±í
SQL> create table TEST(a date);
±íÒÑ´´½¨¡£
´´½¨Ò»¸ö×Ô¶¨Òå¹ý³Ì
SQL> create or replace procedur

Ê×Ò³ ÉÏÒ»Ò³ 1 2 ÏÂÒ»Ò³ βҳ 1/2/2
¡¾´ó ÖРС¡¿¡¾´òÓ¡¡¿ ¡¾·±Ìå¡¿¡¾Í¶¸å¡¿¡¾Êղء¿ ¡¾ÍƼö¡¿¡¾¾Ù±¨¡¿¡¾ÆÀÂÛ¡¿ ¡¾¹Ø±Õ¡¿ ¡¾·µ»Ø¶¥²¿¡¿
ÉÏһƪ£º±±¾©-¹ãÖÝÔËͨ±±¾©·Ö¹«Ë¾ÃæÊÔÌâ ÏÂһƪ£º¡¾cpoy¡¿»ªÎªÃæÊÔ¹éÀ´,¸Ð¿®Íòǧ

×îÐÂÎÄÕÂ

ÈÈÃÅÎÄÕÂ

Hot ÎÄÕÂ

Python

C ÓïÑÔ

C++»ù´¡

´óÊý¾Ý»ù´¡

linux±à³Ì»ù´¡

C/C++ÃæÊÔÌâÄ¿