您的位置:首页 > 数据库 > Oracle

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

2017-09-18 17:24 726 查看
#!/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 {} \;
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle Linux
相关文章推荐