以下是可运行脚本创建步骤
1.在服务器创建备份目录,并赋予权限
mkdir -p /data/backup/P_DATA #新建shell脚本存放路径 mkdir -p /data/backup/P_DB_BACK #新建Oracle数据库备份目录 chown -R oracle:oinstall /data/backup/P_DATA #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在安装Oracle数据库时设置的) chown -R oracle:oinstall /data/backup/P_DB_BACK
2.备份脚本
vi /data/backup/P_DATA/P_DB_BAK.sh #新建文件
#!/bin/sh ORACLE信息可以通过 .bash_profile 查看 echo "备份脚本开始启动..." #打印备份进度 export ORACLE_SID=zldc export ORACLE_BASE=/data/u01/app export ORACLE_HOME=/data/u01/app/product/11.2.0/db_1 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/oracle/grid/bin export LANG=en_US.UTF-8 export NLS_LANG="AMERICAN_AMERICA".AL32UTF8 #以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能执行。
加注释脚本文件如下:
#oracle info dateTime=`date +%Y_%m_%d` #当前系统时间 days=5 #删除5天前的备份数据 orsid='172.16.100.57:1521/orcl' #oralce连接信息 orowner=dbUser # 备份此用户下面的数据 bakuser=dbUser #用此用户来执行备份,必须要有备份操作的权限 bakpass=dbPwd #执行备注的用户密码 bakdir=/backup/P_DB_BACK #备份文件路径,已创建完毕 bakdata=$orowner"_"$dateTime.dmp #备份数据库名称 baklog=$orowner"_"$dateTime.log #备份执行时候生成的日志文件名称 ordatabak=$orowner"_"$dateTime.tar.gz #最后保存的Oracle数据库备份文件 cd $bakdir echo "现在开始进行数据备份..." exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$bakdata log=$bakdir/$baklog #执行备份 echo "数据备份结束..." echo "现在开始进行压缩备份数据..." tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件 echo "压缩备份数据结束..." echo "删除备份数据开始..." find $bakdir/ -type f -name "*.log" -exec rm {} \; #删除备份文件 find $bakdir/ -type f -name "*.dmp" -exec rm {} \; #删除日志文件 find $bakdir/ -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; #删除5天前的备份(注意:{} \中间有空格) echo "删除备份数据结束..." echo "备份执行完毕..."
:wq! 保存 退出
3.添加脚本执行权限
chmod +x /backup/P_DATA/P_DB_BAK.sh #添加脚本执行权限
4.编辑系统任务执行计划
crontab -e,输入一下信息:
#每天凌晨3点,以oracle用户执行P_DB_BAK.sh备份文件 00 03 * * * /backup/P_DATA/P_DB_BAK.sh
:wq! #保存退出
5.重启crontab
service crond restart
从此每天的凌晨3点 系统会自动完成数据库的备份,压缩,并上传到远程服务器的指定路径下!
无注释的脚本文件如下:
#oracle info echo "备份脚本开始启动..." export ORACLE_SID=orcl1 export ORACLE_BASE=/oracle/app export ORACLE_HOME=/oracle/app/110204 export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/lib:/lib:/usr/lib:/usr/local/lib export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/usr/sbin:/usr/local/bin:/oracle/grid/bin export LANG=en_US.UTF-8 export NLS_LANG="AMERICAN_AMERICA".AL32UTF8 dateTime=`date +%Y_%m_%d` days=5 orsid='ipaddress:port/orcl' orowner=dbuser bakuser=dbuser bakpass=dbpwd bakdir=/backup/WMS_DB_BACK bakdata=$orowner"_"$dateTime.dmp baklog=$orowner"_"$dateTime.log ordatabak=$orowner"_"$dateTime.tar.gz cd $bakdir echo "现在开始进行数据备份..." exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$bakdata log=$bakdir/$baklog echo "数据备份结束..." echo "现在开始进行压缩备份数据..." tar -zcvf $ordatabak $bakdata $baklog echo "压缩备份数据结束..." echo "删除备份数据开始..." find $bakdir/ -type f -name "*.log" -exec rm {} \; find $bakdir/ -type f -name "*.dmp" -exec rm {} \; find $bakdir/ -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \; echo "删除备份数据结束..." echo "备份执行完毕..."
内容查看价格0.1元立即支付
注意:本站少数资源收集于网络,如涉及版权等问题请及时与站长联系,我们会在第一时间内与您协商解决。如非特殊说明,本站所有资源解压密码均为:zhangqiongjie.com。
作者:1923002089
评论前必须登录!
注册