oracle数据库定时备份脚本 Oracle备份脚本



文章插图
oracle数据库定时备份脚本 Oracle备份脚本

文章插图
好久没更新头条号内容了,突然想起来这个号了,决定还是要继续更新,哈哈哈,希望大家继续支持,看完后动动小手关注和点赞下哦~~~
oracle12c shell脚本自动备份 线上环境可用 Centos7.4环境
shell脚本内容如下:
#!/bin/sh#环境变量生效backNod=e172.16.2.101 #备份库地址提前做好免密rt ORACLE_HOSTNAME=oracle-primaryexport ORACLE_UNQNAME=oracle-primaryexport ORACLE_BASE=/u01/app/oracleexport ORACLE_HOME=/u01/app/oracle/product/12.2.0/dbhome_1export ORACLE_SID=orclexport PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/u01/app/oracle/product/12.2.0/dbhome_1/binbackPath=/home/oracledata/date=`date +%Y_%m_%d` # 获取系统当前日期时间days=60 #设置删除60天之前的备份文件serverNode=172.16.2.124orsid=orcl #Oracle数据库服务器IP、端口、SIDorowner=byyy #备份此用户下面的数据bakuser=byyy #用此用户来执行备份,必须要有备份操作的权限bakpass=123456 #执行备注的用户密码bakdir=/data/backup/oracledata #备份文件路径,需要提前创建好bakdata=http://www.mnbkw.com/jxjc/186723/$orowner_$date.dmp #备份数据库名称baklog=$orowner_$date.log #备份执行时候生成的日志文件名称ordatabak=$orowner_$date.tar.gz #最后保存的Oracle数据库备份文件#cd $bakdir #进入备份目录#mkdir -p $bakdir/$orowner #按需要备份的Oracle用户创建目录exp $bakuser/$bakpass@$serverNode/$orsid grants=y owner=$orowner file=$bakdir/$orowner/$bakdata #执行备份tar -zcvf $bakdir/$orowner/$ordatabak $bakdir/$orowner/$bakdata $bakdir/$orowner/$baklog #压缩备份文件和日志文件#导入到备份库scp $bakdir/$orowner/$ordatabak $backNode:$backPathfind $bakdir/$orowner -type f -name *.dmp -exec rm {} ; #删除备份文件find $bakdir/$orowner -type f -name *.log -exec rm {} ; #删除日志文件find $bakdir/$orowner -type f -name *.tar.gz -daystart -mtime +$days -exec rm -rf {} ; #删除60天前的备份(注意:{} 中间有空格)#删除60天之前的数据库备份文件ssh $backNode"find $backPath -type f -name '*.tar.gz' -daystart -mtime +$days-exec rm -rf {};"echo "数据库备份成功:$date"【oracle数据库定时备份脚本 Oracle备份脚本】定时任务crontab 内容如下
添加可执行权限:chmod +x /opt/module/oracle/ordatabak.sh添加系统定时任务每周日执行一次数据库全量备份echo "0 0 * * 0 /opt/module/oracle/ordatabak.sh &> /dev/null" > /data/crontabcrontab /data/crontabcrontab -l 查看定时任务备注:如果定时任务无法正常执行,在crontab文件中添加变量
SHELL=/bin/bashPATH=/sbin:/bin:/usr/sbin:/usr/binMAILTO=rootHOME=/*/3 * * * * /usr/sbin/ntpdate 172.16.2.102&> /dev/null0 0 * * * /opt/module/oracle/ordatabak.sh