首先编写备份语句,此处以RMAN脚本为例,命名为Increment0Bkp.RMANrun{allocate channel oem_backup_disk1 type disk;allocate channel oem_backup_disk2 type disk;backup incremental level 0 cumulative force noexclude as BACKUPSET format 'J:\RMANBACKUP\Increment0_File_%U' tag '%TAG' database include current controlfile;backup as BACKUPSET format 'J:\RMANBACKUP\Increment0_Arc_%U' tag '%TAG' archivelog all not backed up;release channel oem_backup_disk1;release channel oem_backup_disk2;}release channel;}
备份脚本如下set ORACLE_SID=EPDATArman target / log J:\RMANBACKUP\RMANBkpLog\Increment0bak_%DATE:~0,10%.LOG cmdfile=D:\oracle\product\10.2.0\admin\RMANBackupScript\Increment0Bkp.rman此脚本让rman调用Increment0Bkp.rman文本中的备份语句,记录当前备份过程于日志文件。
在oracle中创建programbegin dbms_scheduler.create_program ( program_name =>'Increment0Bkp_program', program_action =>'D:\oracle\product\10.2.0\admin\RMANBackupScript/Increment0Bkp.bat', program_type =>'EXECUTABLE', enabled =>true, comments =>'Increment0Bkp');end;/ select program_name,program_type,program_action,number_of_arguments,enabled from user_scheduler_programs where program_name='INCREMENT0BKP_PROGRAM';
创建一个schedulerbegindbms_scheduler.create_schedule( schedule_name =>'Increment0Bkp_schedule',start_date => SYSDATE, repeat_interval =>'FREQ=WEEKLY;BYDAY=FRI;BYHOUR=17', comments =>'Increment0Bkp_FRI_16');end;/# FREQ= WEEKLY频次为每周,BYDAY=FRI周五,BYHOUR=17下午18点开始,注意这里时间是截止时间,执行时间加1.查选我们刚刚创建的scheduler如下:SQL> select schedule_name,repeat_interval from user_scheduler_schedules where schedule_name='INCREMENT0BKP_SCHEDULE';
创建一个job,在job中引用创建的程序和scheduler注意 After you create a job and enable it, the Scheduler automatically runs the job according to its schedule or when the specified event is detectedbegindbms_scheduler.create_job(job_name =>'INCREMENT0BKP',program_name =>'INCREMENT0BKP_PROGRAM',schedule_name =>'INCREMENT0BKP_SCHEDULE',enabled =>true);end;/查询我们刚刚创建的job如下: SQL> select job_name,job_type,job_action, REPEAT_INTERVAL,enabled,state from user_scheduler_jobs where job_name='INCREMENT0BKP';
查询创建job的运行状况如下:select log_id,log_date,status,additional_info from user_scheduler_job_run_details where job_name='INCREMENT0BKP'