#!/bin/bash
export ORACLE_BASE=/home/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1
export ORACLE_SID=orcl
export ORACLE_TERM=xterm
export PATH=$ORACLE_HOME/bin:/usr/sbin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export LANG=C
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
date=`date +%Y%m%d%H%M`
days=60 #保留天数
orsid=orcl
orowner=user #执行备份的用户
bakuser=user #备份的用户
bakpass=pass #执行备份的用户密码
bakdir=/home/oracle/datadump #备份路径
rsyncdir=/home/orafile/datadump
bakdata=$orowner"_"$date.dmp
baklog=$orowner"_"$date.log
ordatabak=$orowner"_"$date.tar.gz
ordatadmp=$orowner"_"$date.dmp
cd $bakdir
mkdir -p $orowner
cd $orowner
exp $bakuser/$bakpass@$orsid file=$bakdir/$orowner/$bakdata log=$bakdir/$orowner/$baklog owner=$orowner
#nohup zip -m $ordatabak $ordatadmp $baklog #压缩文件zip
tar -zcvf $ordatabak $ordatadmp $baklog
#删除备份文件
find $bakdir/$orowner -type f -name "*.log" -exec rm {} \;
#删除日志文件
find $bakdir/$orowner -type f -name "*.dmp" -exec rm {} \;
#删除60天前的备份(注意:{} \中间有空格)
find $bakdir/$orowner -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;
#nohup zip -m $ordatabak $ordatadmp $baklog #压缩文件zip 此压缩方式文件太大会导致压缩失败