1、root用户下创建备份路径:
mkdir /opt/backup
chown oralce:oinstall /opt/backup
2、oracle用户创建备份脚本路径:
mkdir /opt/app/oracle/bin
cd /opt/app/oracle/bin
3、创建备份脚本
3.1 第一种方式
vi backup.sh
#!/bin/sh
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin:.
export ORACLE_SID=zd
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
#export NLS_LANG=american_america.UTF8
CURDATE=$(date '+%Y%m%d%H%M%S')
backup_directory=/opt/backup/
data_file_prefix=zd
BACKUP_FILE=$backup_directory/zd$CURDATE.dmp
delete_prev_month_data_file()
{
premonth=$(date -d"5 days ago" '+%Y%m%d')
rm -rf $backup_directory/$data_file_prefix$premonth* || true
}
#exp zd/za2009-pwd@ORCL FILE=$BACKUP_FILE tablespaces='zd'
exp zdwebsite/just@zdwz FILE=$BACKUP_FILE owner='zdweb'
delete_prev_month_data_file
exit 0
3.2 第二种方式
vi backup_rfile.sh
#!/bin/sh
export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin:.
export ORACLE_SID=orcl
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
CURDATE=$(date '+%Y%m%d%H%M%S')
backup_directory=/opt/backup/rfile
data_file_prefix=rfile
BACKUP_FILE=$backup_directory/rfile$CURDATE.dmp
delete_prev_month_data_file()
{
premonth=$(date -d"5 days ago" '+%Y%m%d')
rm -rf $backup_directory/$data_file_prefix$premonth* || true
}
cd $backup_directory #记得要切换目录,因用下以变量方式备份执行的脚本在脚本所在目录下生成备份文件
rfile=`exp rfile/133 FILE=rfile$CURDATE.dmp owner='rfile'`
$rfile
delete_prev_month_data_file
exit 0
4、定时任务
crontab -e
0 5 * * * /opt/app/oracle/bin/backup.sh
0 1 * * * /opt/backup/bin/backup_rfile.sh
5、crontab说明:
第一个*表示分钟 每小时的第几分钟执行 0-59
第二个*表示小时 每天的第几个小时执行 0-23
第三个*表示日期 每月的第几天执行 1-31
第四个*表示月历 每年的第几个月执行 1-12
第五个*表示星期 每周的第几天执行 0-6
本文转自ling118 51CTO博客,原文链接:http://blog.51cto.com/meiling/2068171,如需转载请自行联系原作者