oracle强制停止scheduler,Oracle Scheduler的深入使用

-- 1.SYS赋权

grant create job to rm;

grant create evaluation context to rm;          -- create chain要的权限

grant create rule set to rm;                    -- create chain要的权限

grant create rule to rm;                        -- define_rule_set要的权限,比较危险,不建议使用,使用system或sys用户来定义

在Unix平台上执行external的PROGRAM,则需要配置$ORACLE_HOME/bin目录及其父目录都要为a+rx

So for e.g. if your $ORACLE_HOME is /opt/oracle/db then you would have to make sure that

chmod a+rx /opt

chmod a+rx /opt/oracle

chmod a+rx /opt/oracle/db

chmod a+rx /opt/oracle/db/bin

-- 2.创建计划

begin

dbms_scheduler.create_schedule(

schedule_name => 'RM_DAILY_SCHEDULE',

start_date => systimestamp at time zone 'PRC',

repeat_interval=> 'FREQ=DAILY;BYHOUR=20;BYMINUTE=08;BYSECOND=0',

comments=>'RM JOB SCHEDULE WITH CHAIN DAILY');

end;

/

-- 3.创建program, 注意不要使用exec,会出错

begin

dbms_scheduler.create_program(

program_name=> 'FLASH_REPORT_MVIEW',

program_type=> 'PLSQL_BLOCK',

program_action=> 'begin

dbms_mview.refresh(''V_GREPORT_GJZYYBB'', method => ''complete'');

end;',

enabled => true);

end;

/

begin

dbms_scheduler.create_program(

program_name=> 'BACKUP_ORACLE_LOG',

program_type=> 'EXECUTABLE',

program_action=> '/oracle/orasrc/backup/bak_oralog.sh',

enabled => true,

number_of_arguments => 0);

end;

/

-- 4.创建chain

BEGIN

dbms_scheduler.create_chain(

chain_name =>'RM_CHAIN_DAILY',

rule_set_name => NULL,

evaluation_interval => NULL);

dbms_scheduler.enable('RM_CHAIN_DAILY');

END;

/

-- 5.定义步骤

BEGIN

dbms_scheduler.define_chain_step(

chain_name =>'RM_CHAIN_DAILY',

step_name =>'STEP1_FLASH_REPORT_MVIEW',

program_name =>'FLASH_REPORT_MVIEW');

dbms_scheduler.alter_chain(

chain_name =>'RM_CHAIN_DAILY',

step_name =>'STEP1_FLASH_REPORT_MVIEW',

attribute=>'skip',

value=>FALSE);

END;

/

BEGIN

dbms_scheduler.define_chain_step(

chain_name =>'RM_CHAIN_DAILY',

step_name =>'STEP2_BACKUP_ORACLE_LOG',

program_name =>'BACKUP_ORACLE_LOG');

dbms_scheduler.alter_chain(

chain_name =>'RM_CHAIN_DAILY',

step_name =>'STEP2_BACKUP_ORACLE_LOG',

attribute=>'skip',

value=>FALSE);

END;

/

-- 6.定义chain规则

BEGIN

DBMS_SCHEDULER.define_chain_rule (

chain_name => 'RM_CHAIN_DAILY',

condition  => 'TRUE',

action     => 'START STEP1_FLASH_REPORT_MVIEW',

rule_name  => 'RM_CHAIN_DAILY_RULE_START',

comments   => 'First link in the chain.');

DBMS_SCHEDULER.define_chain_rule (

chain_name => 'RM_CHAIN_DAILY',

condition  => 'STEP1_FLASH_REPORT_MVIEW completed',

action     => 'END',

rule_name  => 'RM_CHAIN_DAILY_RULE_END',

comments   => 'End of the chain.');

END;

/

BEGIN

DBMS_SCHEDULER.define_chain_rule (

chain_name => 'RM_CHAIN_DAILY',

condition  => 'TRUE',

action     => 'START STEP1_FLASH_REPORT_MVIEW',

rule_name  => 'RM_CHAIN_DAILY_RULE_START',

comments   => 'First link in the chain.');

DBMS_SCHEDULER.define_chain_rule (

chain_name => 'RM_CHAIN_DAILY',

condition  => 'STEP1_FLASH_REPORT_MVIEW completed',

action     => 'START STEP2_BACKUP_ORACLE_LOG',

rule_name  => 'RM_CHAIN_DAILY_RULE_1',

comments   => 'Next of the chain');

DBMS_SCHEDULER.define_chain_rule (

chain_name => 'RM_CHAIN_DAILY',

condition  => 'STEP2_BACKUP_ORACLE_LOG completed',

action     => 'END',

rule_name  => 'RM_CHAIN_DAILY_RULE_END',

comments   => 'End of the chain.');

END;

/

-- 7.创建JOB

BEGIN

dbms_scheduler.create_job(

job_name => 'RM_DAILY_JOB',

job_type => 'CHAIN',

job_action => 'RM_CHAIN_DAILY',

schedule_name => 'RM_DAILY_SCHEDULE',

job_class => 'DEFAULT_JOB_CLASS',

auto_drop => FALSE,

enabled => TRUE);

END;

/

select * from dba_scheduler_programs;

select * from dba_scheduler_jobs;

select * from dba_scheduler_running_jobs;

select * from dba_scheduler_running_chains;

select * from dba_scheduler_job_log;

select * from dba_mview_refresh_times;

select * from dba_scheduler_running_jobs;

阅读(1715) | 评论(0) | 转发(0) |

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值