Ghost__9 2017-09-14 01:49 采纳率: 0%
浏览 1036
已结题

oracle 中的 scheduler 如何备份

最近机房搬迁、库里存在scheduler,并且有jobs,programs,schedules等的东西、、、、
这个怎么备份呢?

  • 写回答

2条回答 默认 最新

  • 道亦无名 博客专家认证 2017-09-14 02:03
    关注

    在oracle中使用scheduler的范例

    Sql代码

    -- 创建新表

    create table T_TEST_JOB

    (

    ID LONG,

    TEST_DATE TIMESTAMP(6)

    )

    tablespace GBIAPS

    pctfree 10

    initrans 1

    maxtrans 255

    storage

    (

    initial 64

    minextents 1

    maxextents unlimited

    );

    -- 创建序列

    create sequence SEQ_TEST_JOB

    minvalue 1

    maxvalue 9999999999999999999999999999

    start with 1

    increment by 1

    cache 10;

    -- 创建存储过程

    create or replace procedure P_TEST_JOB as

    begin

    insert into t_test_job(id,test_date) values (SEQ_TEST_JOB.NEXTVAL,sysdate);

    end;

    /

    /*

    在使用create_job或者create_schedule前,请先检查 NLS_DATE_LANGUAGE, NLS_DATE_FORMAT,

    NLS_TIMESTAMP_FORMAT, NLS_TIMESTAMP_TZ_FORMAT 等参数的值, 通过alter session 命令来修改

    alter session set NLS_DATE_FORMAT='yyyy-MM-dd';

    alter session set NLS_TIMESTAMP_FORMAT='yyyy-MM-dd hh24:mi:ss';

    alter session set NLS_TIMESTAMP_TZ_FORMAT='yyyy-MM-dd HH:MI:SS.FF AM TZR';

    /

    select * from nls_session_parameters where parameter like '%_DATE_%' or parameter like '%_TIMESTAMP_%';

    -- 创建job

    -- FREQ 用来指定间隔的时间周期,可选参数有: YEARLY, MONTHLY, WEEKLY, DAILY, HOURLY, MINUTELY, SECONDLY

    -- INTERVAL 用来指定间隔的频繁,可指定的值的范围从1-999

    -- 附加的参数有: BYMONTH,BYWEEKNO,BYYEARDAY,BYMONTHDAY,BYDAY,BYHOUR,BYMINUTE,BYSECOND

    /


    每周的1,3,5运行job FREQ=WEEKLY; BYDAY=MON,WED,FRI

    每年的3,6,9,12月的30号运行job FREQ=YEARLY; BYMONTH=MAR,JUN,SEP,DEC; BYMONTHDAY=30

    每月1号凌晨1点执行一次

    Freq=Monthly;BYMONTHDAY=1;BYHOUR=1;BYMINUTE=0;BYSECOND=0;Interval=1

    */

    begin

    sys.dbms_scheduler.create_job(job_name => 'JOB_TESTJOB',

    job_type => 'STORED_PROCEDURE',

    job_action => 'P_TEST_JOB',

    start_date => sysdate,

    repeat_interval => 'Freq=MINUTELY;BYSECOND=0;Interval=1',

                              end_date            => to_date(null),  
    
                                job_class           => 'DEFAULT_JOB_CLASS',  
    
                                enabled             => true,  
    
                                auto_drop           => false,  
    
                                comments            => 'Baiyun Airport Web Site');  
    

    end;

    /

    -- 启动job

    begin

    dbms_scheduler.enable('JOB_TESTJOB');

    end;

    /

    -- 运行job

    begin

    dbms_scheduler.run_job('JOB_TESTJOB',TRUE); -- true代表同步执行

    end;

    /

    -- 停止job

    begin

    dbms_scheduler.stop_job(job_name => 'JOB_TESTJOB',force => TRUE);

    end;

    /

    -- 删除job

    begin

    dbms_scheduler.drop_job(job_name => 'JOB_TESTJOB',force => TRUE);

    end;

    /

    -- 查询job

    select * from user_scheduler_jobs;

    select * from dba_scheduler_jobs;

    -- 查看数据

    select * from t_test_job;

    -- 删除数据

    delete from t_test_job;

    评论

报告相同问题?

悬赏问题

  • ¥15 为什么eprime输出的数据会有缺失?
  • ¥20 腾讯企业邮箱邮件可以恢复么
  • ¥15 有人知道怎么将自己的迁移策略布到edgecloudsim上使用吗?
  • ¥15 错误 LNK2001 无法解析的外部符号
  • ¥50 安装pyaudiokits失败
  • ¥15 计组这些题应该咋做呀
  • ¥60 更换迈创SOL6M4AE卡的时候,驱动要重新装才能使用,怎么解决?
  • ¥15 让node服务器有自动加载文件的功能
  • ¥15 jmeter脚本回放有的是对的有的是错的
  • ¥15 r语言蛋白组学相关问题