多语言展示
当前在线:1633今日阅读:23今日分享:31

Oracle10g-11g 自动备份设置

Oracle自动备份的方法除了利用windows自带任务计划(task scheduler)执行脚本之外,还可以利用自带的task scheduler进行。尤其是在windows的任务计划损坏的情况下,这个途径则尤为重要了。确认linux安全基线开放了自动备份的功能
方法/步骤
1

首先编写备份语句,此处以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;}

2

备份脚本如下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文本中的备份语句,记录当前备份过程于日志文件。

3

在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';

4

创建一个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';

5

创建一个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';

6

查询创建job的运行状况如下:select log_id,log_date,status,additional_info from user_scheduler_job_run_details where job_name='INCREMENT0BKP'

推荐信息