备份环境:
阿里云 CentOS 6.5 64位
oracle11g
备份方式:
用 cron 定时任务每天定时备份,并删除7天前的备份数据
备份脚本
将脚本保存到 /mnt/oracle/oracle_back.sh
<span style="font-size:12px;">#!/bin/sh export ORACLE_BASE=/mnt/oracle/app export ORACLE_HOME=$ORACLE_BASE/oracle/product export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export DATA_DIR=/mnt/oracle/backup/data export LOGS_DIR=/mnt/oracle/backup/logs export DELTIME='date -d "-7 days" +%Y%m%d' export BAKUPTIME=$(date '+%Y%m%d') mkdir -p $DATA_DIR mkdir -p $LOGS_DIR echo "starting backup....." echo "back file path $DATA_DIR/$BAKUPOTIME.dmp" exp lms/oracle@orcl file=$DATA_DIR/$BAKUPTIME.dmp log=$LOGS_DIR/$BAKUPTIME.log echo "delete the file bakup before 7 days" rm -rf $DATA_DIR/$DELTIME.dmp rm -rf $LOGS_DIR/$DELTIME.log echo "delete done" echo "bakup completed"</span>
添加cron任务
打开并添加任务
按 字母 i 进入编辑模式,增加如下代码<span style="font-size:12px;">crontab -e</span>
保存退出,并查看任务是否已添加<span style="font-size:12px;">30 4 * * * /mnt/oracle/oracle_back.sh</span> // 每天早上 4点30分 开始运行备份任务
启动任务<span style="font-size:12px;">crontab -l</span>
<span style="font-size:12px;">/sbin/service crond start</span> //也可用 <span style="font-size:12px;">/sbin/service crond reload/restart/stop/start</span> 来重新启动
查看cron任务日志
<span style="font-size:12px;">tail -n 100 /var/log/cron</span>
备注:调测的小技巧
- 在 crontab -e 后增加 5 * * * * echo "123456" >> /mnt/t.txt 来测试任务是否执行(前面那条命令是每个小时的第5分钟向文件写入‘123456’)
- 用来备份的脚本,先执行一次,保证脚本正常