oracle自动备份脚本

自己写得oracle备份脚本,可在oracle用户下,用crontab命令添加自动任务。

  
  
  
  
  1. #!/bin/bash 
  2.  
  3. # This shell is used to backup oracle database 
  4. # Backup occurs on erery Wed and Sun 
  5. # Create by menchao on 20110930  
  6. home=/u01/app/oracle/ 
  7. sh $home/.bash_profile 
  8. day=`date +%Y%m%d` 
  9. echo "$weekday" > a.txt 
  10. mkdir -p /u01/backup/$day 
  11. bakdir=$home/backup 
  12.  cat >>$bakdir/rman.cmd   <<EOF 
  13.         run{ 
  14.         allocate channel ch1 type disk; 
  15.         allocate channel ch2 type disk; 
  16.         backup as compressed backupset 
  17.         format='${bakdir}/fullbak_%d_%U' 
  18.         tag='${day}_fullbak' 
  19.         channel=ch1 
  20.         database; 
  21.         sql "alter system switch all logfile"
  22.         backup as compressed backupset 
  23.         format='${bakdir}/arc_%d_%U' 
  24.         tag='${day}_arc' 
  25.         channel=ch2 
  26.         archivelog all  delete input; 
  27.         backup as compressed backupset 
  28.         format='${bakdir}/control.ctl' 
  29.         tag='${day}_control' 
  30.         channel=ch2 
  31.         current controlfile; 
  32.            } 
  33.         exit; 
  34. EOF 
  35. rman target / msglog=${bakdir}/bak_${day}.log cmdfile=${bakdir}/rman.cmd 
此处是没有搭建catalog环境的,即采用controlfile备份。如果有catalog的,只需在rman命令一行,稍作修改,比ing在cat命令exit之前,加上一句"resync catalog;"。假设catalog的链接字串为:rman/rman@dbcat,
 
  
  
  
  
  1. rman target / catalog rman/rman@dbcat msglog=${bakdir}/bak_${day}.log cmdfile=${bakdir}/rman.cmd 

 

你可能感兴趣的:(oracle,shell,rman,休闲,自动备份脚本)