ORACLE¼Æ»®(schedule)Ïê½â
´´½¨job
jobÊÇÊ²Ã´ÄØ? ¼òµ¥µÄ˵¾ÍÊǼƻ®(schedule)¼ÓÉÏÈÎÎñ˵Ã÷. ÁíÍ⻹ÓÐһЩ±ØÐëµÄ²ÎÊý.
ÕâÀïÌáµ½µÄ"ÈÎÎñ"¿ÉÒÔÊÇÊý¾Ý¿âÄÚ²¿µÄ´æ´¢¹ý³Ì,ÄäÃûµÄPL/SQL¿é,Ò²¿ÉÒÔÊDzÙ×÷ϵͳ¼¶±ðµÄ½Å±¾.
¿ÉÒÔÓÐÁ½ÖÖ·½Ê½À´¶¨Òå"¼Æ»®":
1) ʹÓÃDBMS_SCHDULER.CREATE_SCHEDULE ¶¨ÒåÒ»¸ö¼Æ»®;
2) µ÷ÓÃDBMS_SCHDULER.CREATE_JOBE¹ý³ÌÖ±½ÓÖ¸¶¨ (ÏÂÃæ»áÏêϸ˵Ã÷)
ÔÚ´´½¨Ò»¸ö¼Æ»®Ê±£¬ÄãÖÁÉÙÐèÒªÖ¸¶¨ÏÂÃæµÄÊôÐÔ£¬ËüÃÇÊÇjobÔËÐÐËù±ØÐëµÄ:
¿ªÊ¼Ê±¼ä (start_time);
ÖØ¸´ÆµÂÊ (repeat_interval);
½áÊøÊ±¼ä (end_time)
ÁíÍ⣬¶ÔÓÚÒ»¸öjob¶øÑÔ£¬»¹ÓкܶàµÄ¸½¼Ó²ÎÊý:
job_class
job_priority
auto_drop
restartable
max_runs
max_failures
schedule_limit
logging_level
ÏÂÃæ£¬ÎÒÒÔÎÊ´ðµÄÐÎʽÀ´¾ßÌå½âÊÍ.
Q1:Ôõô´ÓÊý¾Ý¿âÖвéѯjobµÄÊôÐÔ ?
A1: ÓÐÁ½ÖÖ·½·¨:
1) ²éѯ(DBA|ALL|USER)_SCHEDULER_JOBS ÊÓͼ
(Ìáʾ: ¸ù¾ÝÓû§È¨Ï޵IJ»Í¬£¬Ñ¡ÔñÐԵIJéѯ DBA|ALL|USERÊÓͼ)
2) µ÷ÓÃDBMS_SCHEDULER°üÖеÄGET_ATTRIBUTE ¹ý³Ì
Q2: ÔõôÉèÖÃÕâЩÊôÐÔÄØ?
A2: Ò²ÊÇÓÐÁ½ÖÖ·½·¨
1) ÔÚ´´½¨jobʱֱ½ÓÖ¸¶¨
2) µ÷ÓÃDBMS_SCHEDULER°üÖеÄSET_ATTRIBUTE ¹ý³Ì
Q3: "ÎÒÐèҪʲôȨÏÞ²ÅÄÜ´´½¨job" ?
A3: ÄãÖÁÉÙÐèÒªcreate_jobÕâ¸öϵͳȨÏÞ¡£Èç¹ûÓû§ÓµÓÐcreate any jobÕâ¸öȨÏÞ£¬
Ëü¿ÉÒÔ´´½¨ÊôÖ÷ΪÈκÎÓû§(SYSÓû§³ýÍâ)µÄjob.
ȱʡÇé¿öÏÂ,job»á±»´´½¨ÔÚµ±Ç°µÄschemaÏ£¬²¢ÇÒÊÇûÓ줻îµÄ; Èç¹ûҪʹjobÒ»´´½¨
¾Í×Ô¶¯¼¤»î£¬ÐèÒªÏÔʽµÄÉèÖÃenabled ÊôÐÔΪtrue, À´¿´Ò»¸öÀý×Ó:
begin
dbms_scheduler.create_job
(
job_name => 'ARC_MOVE',
schedule_name => 'EVERY_60_MINS',
job_type => 'EXECUTABLE',
job_action => '/home/dbtools/move_arcs.sh',
enabled => true,
comments => 'Move Archived Logs to a Different Directory'
);
end;
/
Q4: Äܲ»ÄÜÏêϸµØ½²ÊöÒ»ÏÂÉÏÃæÕâ¸ö¹ý³ÌÓõ½µÄ¸÷¸ö²ÎÊý?
A4:
job_name: ¹ËÃû˼Òå,ÿ¸öjob¶¼±ØÐëÓÐÒ»¸öµÄÃû³Æ
schedule_name: Èç¹û¶¨ÒåÁ˼ƻ®£¬ÔÚÕâÀïÖ¸¶¨¼Æ»®µÄÃû³Æ
job_type: Ŀǰ֧³ÖÈýÖÖÀàÐÍ:
PL/SQL¿é: PLSQL_BLOCK,
´æ´¢¹ý³Ì: STORED_PROCEDURE
Íⲿ³ÌÐò: EXECUTABLE (Íⲿ³ÌÐò¿ÉÒÔÊÇÒ»¸öshell½Å±¾,Ò²¿ÉÒÔÊDzÙ×÷ϵͳ¼¶±ðµÄÖ¸Áî).
job_action: ¸ù¾Ýjob_typeµÄ²»Í¬£¬job_actionÓв»Í¬µÄº¬Òå.
Èç¹ûjob_typeÖ¸¶¨µÄÊÇ´æ´¢¹ý³Ì£¬¾ÍÐèÒªÖ¸¶¨´æ´¢¹ý³ÌµÄÃû×Ö;
Èç¹ûjob_typeÖ¸¶¨µÄÊÇPL/SQL¿é£¬¾ÍÐèÒªÊäÈë
Ïà¹ØÎĵµ£º
¼oracleÊý¾Ý¿âʱ³£ÓõIJÙ×÷ÃüÁîÕûÀí
1¡¢su – oracle ²»ÊDZØÐ裬ÊʺÏÓÚûÓÐDBAÃÜÂëʱʹÓ㬿ÉÒÔ²»ÓÃÃÜÂëÀ´½øÈësqlplus½çÃæ¡£
2¡¢sqlplus /nolog »òsqlplus system/manager »ò./sqlplus system/manager@ora9i;
3¡¢SQL>connect / as sysdba ;£¨as sysoper£©»ò
connect internal/oracle AS SYSDBA ;(scott/tiger) ......
ÆÀ¹ÀÊý¾Ý¸ßËÙ»º´æÐ§ÂʵÄÖ¸±êÊÇÃüÖÐÂÊ¡£¸ÃÃüÖÐÂÊͨ¹ý²éѯV$SYSSTAT ºÍ$BUFFER_POOL_STATISTICSÊÓͼ¿ÉÒԵõ½¡£Õâ¸öÊÓͼ¿ÉÒÔ
²éѯÿ¸ö»º´æ³Ø¸÷×ÔµÄÃüÖÐÂÊ¡£»º´æ³ØµÄÃüÖÐÂʵļÆËã²ÉÓÃÏÂÃæµÄ¹«Ê½:
1-(physical_reads/(db_block_gets+consistent_gets))
ÏÂÃæµÄSQLÓï¾ä³£ÓÃÀ´²éѯµ±Ç°¸÷¸ö»º´æ³ØµÄÃüÖ ......
OracleÊý¾Ý¿â10g schedule jobµÄ³£ÓòÙ×÷:
-- job ȨÏÞ
grant create job to somebody;
-- job ´´½¨
begin
dbms_scheduler.create_job (
job_name => 'AGENT_LIQUIDATION_JOB',
job_type => 'STORED_PROCEDURE',
job_action => 'AGENT_LIQUIDATION.LIQUIDATION', --´æ´¢¹ý³ÌÃû
start_date => ......
Ç°ÃæÒ»Ö±³¢ÊÔoracleµÄÁª»ú±¸·Ý¶¼Ã»Óгɹ¦£¬³öÏÖÁË0 file(s) copied£¬½ñÌìÖÕÓÚ·¢ÏÖÁËÎÊÌâËùÔÚ£¬Ìصͼ¶µÄ´íÎó¾ÍÊÇ£¬ÔÀ´Host copyÓï¾äÒªÔÚÔËÐÐÃüÁî´°¿ÚÏÂÔËÐвŻáÉúЧ£¬Ç°ÃæÒ»Ö±¶¼Ì«Ï°¹ßÔÚpl/sqlÖнøÐвÙ×÷ÁË¡£
oracle9iÁª»ú±¸·ÝµÄ¹ý³Ì
sql>alter tablespce mytp begin backup;
sql>host copy f:\oracle\oradata\myt ......