#!/bin/sh
export ORACLE_BASE=/usr/local/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=en_US.UTF-8
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#获取系统当前日期时间
date=date +%Y_%m_%d
#设置删除2天之前的备份文件
days=2
#Oracle数据库服务器IP、端口、SID
orsid=192.168.2.75:1521/orcl
#备份此用户下面的数据
orowner=choiceall
#用此用户来执行备份,必须要有备份操作的权限
bakuser=choiceall
#执行备注的用户密码
bakpass=choiceall
#备份文件路径,需要提前创建好
bakdir=/usr/local/bakoradata
#备份数据库名称
bakdata=$orowner"_"$date.dmp
#备份执行时候生成的日志文件名称
baklog=$orowner"_"$date.log
#最后保存的Oracle数据库备份文件
ordatabak=$orowner"_"$date.tar.gz
#进入备份目录
cd $bakdir
#执行备份
exp $bakuser/$bakpass@$orsid grants=y owner=$orowner file=$bakdir/$bakdata log=$bakdir/$baklog
#压缩备份文件和日志文件
tar -zcvf $ordatabak $bakdata $baklog
#删除备份文件
find $bakdir -type f -name "*.log" -exec rm {} \;
#删除日志文件
find $bakdir -type f -name "*.dmp" -exec rm {} \;
#删除7天前的备份(注意:{} \中间有空格)
find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;