WEB开发网
开发学院数据库Oracle Oracle数据库恢复管理器及特殊包应用 阅读

Oracle数据库恢复管理器及特殊包应用

 2007-05-13 12:28:00 来源:WEB开发网   
核心提示: 4) 利用Unix的crontab命令定期自动执行备份脚本Crontab命令用于指定一个文件,其行计划命令以固定时间间隔执行,Oracle数据库恢复管理器及特殊包应用(6),Cron是一个永久进程,它由/etc/rc.local启动执行,而数据库既实现了在线磁带备份,又实现了异机备份集中管

4) 利用Unix的crontab命令定期自动执行备份脚本

Crontab命令用于指定一个文件,其行计划命令以固定时间间隔执行。Cron是一个永久进程,它由/etc/rc.local启动执行。Cron程序读取、解释并执行crontab文件。我们将需自动定期执行备份的脚本文件写成shell命令行方式存入crontab文件中,由系统定期调度执行。Crontab文件的每一行由六个域(minutes、hours、day of month、month、day of week、command)组成,域之间用空格或Tab分开。

现在,我们在目标机上编写一个文件,用以启动自动备份进程。文件名定为Oracle,文件将放在/var/spool/cron/crontabs 目录下。Oracle文件内容:

  0 23 * * 0 /oracle/rman/rman cmdfile ‘hotbackup.rcv’
  # 星期天23点对数据库执行在线全备份
  0 12,18 * * * /oracle/rman/rman cmdfile ‘hotarcbackup.rcv’
  # 每天12点,18点执行归档文件备份

经过以上的操作后,系统每天自动产生两个归档日志备份,每个星期天产生一个数据库完全备份。DBA需要做的是,隔几天换一盘磁带(更换磁带的周期取决于备份文件的大小和磁带的容量)和用RMAN定期检查备份执行情况。

执行恢复操作的RMAN脚本文件restore.rcv如下(在host1上运行):

connect target
connect rcvcat rman/rman@host3
run { allocate channel t1 type 'SBT_TAPE';
   allocate channel t2 type 'SBT_TAPE';
   restore controlfile;
   sql 'alter database mount';
   restore database;
   recover database;
   sql 'alter database open resetlogs';
  }

4.2 存储过程定期自动执行的实例

以下为将Salary表数据定时转入Salary_history表的应用实例:

创建存储过程
SQL> create or replace procedure ProcEmp
 IS
 begin
   insert into Salary_history (EmpId,EmpName,DptName,Salary,Month)
   select EmpId,EmpName,DptName,Salary,
   to_char(sysdate,'yyyy-mm') from Salary;
  commit;
  end ProcEmp;
/
提交作业
SQL> variable jobno number;
SQL> begin
    DBMS_JOB.SUBMIT(:jobno,
   'ProcEmp;',
   SYSDATE, 'SYSDATE + 30'); --每30天运行一次
    commit;
   end;
   /
运行作业
SQL>begin
    dbms_job.run(:jobno);
  end;
  /

五. 结语

Oracle实用工具RMAN的应用为DBA管理多个Oracle数据库提供了集中备份管理与恢复控制的机制,大大地减轻了DBA的工作压力,而DBMS_JOB包的使用增强了存储过程的应用功能,这样,他们就可以从备份数据及重复处理数据的繁琐中解脱出来,去做其它更有意义的工作。而数据库既实现了在线磁带备份,又实现了异机备份集中管理,相应提高了系统运行的安全性。

上一页  1 2 3 4 5 6 

Tags:Oracle 数据库 恢复

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接