linux下oracle自动备份
1、编辑备份脚本
vi /backup/oracledata/ordatabak.sh
#!/bin/bash
export ORACLE_BASE=/u01/oracle
export ORACLE_HOME=$ORACLE_BASE/oracle
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
date=$(date +'%Y-%m-%d')
bakdata=wznc65"_"$date.dmp
baklog=wznc65"_"$date.log
ordatabak=wznc65"_"$date.tar.gz
backdir=/oracledb2/backup
expdp wznc65/wznc65 grants=y schemas=wznc65 directory=dump_dir dumpfile=$bakdata logfile=$baklog
cd $backdir
tar -zcvf $ordatabak $bakdata $baklog #压缩备份文件和日志文件
find $bakdir -type f -name "*.log" -exec rm {} \; #删除备份文件
find $bakdir -type f -name "*.dmp" -exec rm {} \; #删除日志文件
find $bakdir -type f -name "*.tar.gz" -mtime +7 -exec rm -rf {} \;
chmod +x /backup/oracledata/ordatabak.sh #添加脚本执行权限
2、编写定时任务
crontab -e
30 2 * * * oracle /backup/oracledata/ordatabak.sh #每天凌晨2点30分,以oracle用户执行ordatabak.sh备份文件
service crond restart #重启crond
每天凌晨2点30分,会自动备份数据库到/backup/oracledata/OSYUNWEI目录中,保存为.tar.gz压缩文件,并且删除7天前的备份,即只保留最近7天的数据。