oracle 中怎样利用job实现定时备份

解决方案 »

  1.   

    比方说:我希望在每10分钟获取一次快照,应该使用下列命令:
    execute dbms_job.submit(
    :jobno, --作业编号
    ‘sp;', --执行的过程
    trunc(sysdate+10/1440,‘MI'), --下次执行时间
    ‘trunc(sysdate+10/1440,‘‘MI'')', --间隔时间
    true, --no_parse
    :instno);
      

  2.   

    如果是10G的版本,很容易实现,用dbms_scheduler.Create_job可以创建ACTION类型为EXECUTABLE,
    然后在ACTION中制定了需要的BAT的目录。
    例如
    DBMS_SCHEDULER.CREATE_JOB(
         Job_name=>'BACKUP',
         job_type=>'EXECUTABLE',
         job_action='C:\TEMP\BACKUP.BAT',
         start_date=>SYDATE,
         repeat_interval=>'FREQ=MONTHLY;BYDAY=MON,SUN;BYHOUR=-1;BYMINUTE=-1',
         ENABLED=>TRUE,
         COMMENTS=>'定期备份数据库'
         );
    每星期 星期一,星期天的  23:59分备份。
    backup.bat内容可以这样设置.
    set adir=%DATE:~,4%%DATE:~5,2%%DATE:~8,2%
    EXP user/pwd@connectionstring   FILE=%adir%.dmp tables=tab这仅仅是一个例子
      

  3.   

    呵呵
    其實也不用寫在JOB里面啊
    你把腳本寫好后,要是WINDOWS可以直接加到每天排定的工作里面啊!
    這樣的話,電腦每天就可以自己執行!