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文件
/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 假定文件内容如下:
- $>cat backup.rcv
- connect target sys/password rcvcat rman/rman@localname;
- run{
- allocate channel c1 type disk;
- allocate channel c2 type disk;
- allocate channel c3 type disk;
- backup fileaperset 3 format ‘/u01/oradata/backup/arch%u_%s_%p’
- archivelog all delete input;
- release channel c1;
- release channel c2;
- release channel c3;
- }
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分隔开来