linux下oracle自动备份脚本

linux下oracle自动备份脚本


 vi /home/oracle/backup.sh   //编写脚本

以下为脚本内容

time=` date +"%Y%m%d%H%M" ` //变量time 获取当前系统时间

su - oracle -c "exp hbskjt_0113/password owner=hbskjt_0113 file=/home/oracle/hbskjt_$time.dmp"  //导库脚本

cd /home/oracle

tar zcvf  /home/oracle/hbskjt_$time.tar.gz  hbskjt_$time.dmp  //进行压缩

rm -rf  hbskjt_$rq.dmp  //压缩完成之后删除dmp文件

crontab -e  //编辑命令
 
*/1 * * * * /home/oracle/backup.sh  //每一分钟执行一次
 
 
要检查cron服务是否开启

/sbin/service crond start   // 启动服务

/sbin/service crond stop    // 关闭服务

/sbin/service crond restart // 重启服务

很多时候我们都需要Oracle自动备份,下面就为您详细介绍Oracle自动备份的三种方法,供您参考,如果您对Oracle备份方面感兴趣的话,不妨一看。

Oracle自动备份数据库不外乎以下三种方式

WINDOWS下的任务计划(At命令) 
   
UNIX下的Crontab 
第三方工具如Viritas

在以上三种方式中Viritas属于第三方工具,很多人可能都没有接触,主要说一下windows的任务计划与unix的cron

1、生成脚本文件,如backup.rcv 假定文件内容如下:


  1. $>cat backup.rcv   
  2. connect target sys/password rcvcat rman/rman@localname;   
  3. run{   
  4. allocate channel c1 type disk;   
  5. allocate channel c2 type disk;   
  6. allocate channel c3 type disk;   
  7. backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’    
  8. archivelog all delete input;   
  9. release channel c1;   
  10. release channel c2;   
  11. release channel c3;   
  12. }   

2、生成执行文件在windows上生成backup_archive.bat,内容包括rman cmdfile = backup.rcv 在unix下生成 backup_archive.sh,内容包括oracle/ramn/rman cmdfile = backup.rcv

3、加入调度在windows中用任务计划向导即可,或使用at命令。在unix中,在目标机器上编写一个文件,用以启动Oracle自动备份进程。假定文件名为ORACLE,文件将放在/var/spool/cron/crontabs目录下 
$>cat oracle 
0 23 * * 0 backup_archive.sh 
#表示星期天23点对数据库备份 
0 12,18 * * * backup_archive.sh 
    #表示每天12点,18点备份 
Crontab文件的每一行由六个域(minutes,hours,day of month,month,day of week,command)组成,域之间用空格或Tab分隔开来



上一篇:使用ecs服务器如何构建mysql数据的高可用高性能


下一篇:阿里云高可用架构之“CDN+WAF+SLB+ECS