Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份
#!/bin/bash
#设置Oracle数据库运行账号及oracle的系统环境变量
export ORACLE_BASE=/data/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10g
export ORACLE_SID=test
export PATH=$ORACLE_HOME/bin:$HOME/bin:$PATH
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/network/lib
export LANG=zh_CN.UTF-8
export NLS_LANG='SIMPLIFIED CHINESE_CHINA.ZHS16GBK'
#获取系统当前日期时间
date=`date +%Y%m%d%H%M%S`
#设置删除60天之前的备份文件
days=60
#备份此用户下面的数据
orowner=oracle
#备份数据库名称
bakuser=user
#执行备份的密码
bakpass=pass
#备份文件路径,需要提前创建好
bakdir=/data/backup/oracle/backup/
#备份数据库名称
bakdata=$orowner"_"$date.dump
#备份执行时候生成的日志文件名称
baklog=$orowner"_"$date.log
#最后保存的Oracle数据库备份文件
ordatabak=$orowner"_"$date.tar.gz
#进入目录
cd $bakdir
#执行备份
exp $bakuser/$bakpass grants=y owner=$bakuser file=$bakdir/$bakdata log=$bakdir/$baklog &> /dev/null
#压缩备份文件和日志文件
tar -zcf $ordatabak $bakdata $baklog
#删除备份文件
find $bakdir -type f -name "*.log" -exec rm {} \;
#删除日志文件
find $bakdir -type f -name "*.dump" -exec rm {} \;
#删除60天前的备份
find $bakdir -type f -name "*.tar.gz" -mtime +$days -exec rm -rf {} \;
©著作权归作者所有:来自51CTO博客作者fkuefcpso的原创作品,如需转载,请注明出处,否则将追究法律责任