!/bin/sh

export PATH
export ORACLE_BASE=/opt/oracle/app
export ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

以上代码为Oracle数据库运行账号oracle的系统环境变量设置,必须添加,否则crontab任务计划不能行。

oracle用户的系统环境变量路径:/home/oracle/.bash_profile

date=date +%Y%m%d%H%M%S #获取系统当前日期时间
orsid=192.168.100.156:1521/orcl #Oracle数据库服务器IP、端口、SID
orowner=sxwtspj #备份此用户下面的数据
bakpass=bs #执行备注的用户密码
bakdir=/opt/oracle/app/admin/orcl/dpdump/ #备份文件路径,需要提前创建好
bakdata=$orowner”“$date”-bak”.dmp #备份数据库名称
baklog=$orowner”
“$date.log #备份执行时候生成的日志文件名称
ordatabak=$orowner”_”$date.tar.gz #最后保存的Oracle数据库备份文件
cd $bakdir #进入备份目录
#mkdir -p $orowner #按需要备份的Oracle用户创建目录
#cd $orowner #进入目录
expdp sxwtspj/bs directory=DATA_PUMP_DIR dumpfile=$bakdata logfile=$baklog version=11
#执行备份
cd /opt/oracle/app/admin/orcl/dpdump/
tar -zvcf $ordatabak $bakdata $baklog #压缩备份文件和日志文件
rm -rf $bakdata $baklog #删除备份文件和日志文件
find /home/oracle/app/DBBak/ -mtime +4 -name “*.tar.gz” -exec rm -rf {} \;

设置定时
crontab -e
#每天23点30分执行
30 23 * sh /home/bosssoft/AUTOBACKUP/dbank.sh