1、以Oracle用户登录Linux系统。如当前使用其他用户,可使用如下命令进入oracle用户。
su - oracle
1、创建备份脚本
#!/bin/sh export ORACLE_BASE=/opt/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export NLS_LANG=AMERICAN_AMERICA.AL32UTF8 export DATA_DIR=/opt/backup/data export LOGS_DIR=/opt/backup/logs export DELTIME=`date -d "7 days ago" +%Y%m%d` export BAKUPTIME=`date +%Y%m%d%H%M%S` mkdir -p $DATA_DIR mkdir -p $LOGS_DIR echo "Starting bakup..." echo "Bakup file path $DATA_DIR/$BAKUPTIME.dmp" exp andacms/andacms@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 the file bakup successfully. " echo "Bakup completed."
注:此处的“export NLS_LANG=AMERICAN_AMERICA.AL32UTF8” 需要与数据库的字符集相同,否则备份会出现
EXP-00091: Exporting questionable statistics.
输入如下命令查看
SQL> select * from v$nls_parameters where parameter='NLS_CHARACTERSET'; PARAMETER----------------------------------------------------------------VALUE---------------------------------------------------------------- NLS_CHARACTERSET AL32UTF8
2、添加定时执行任务
输入命令
crontab -e
进入oracle用户的定时任务执行列表。
输入
0 23 * * * /opt/backup/auto_backup.sh
此处为每天晚上23点开始执行备份,具体时间 ,可参考Linux 的Cron表达式,可提供多种时间机制。
Cron表达式:http://blog.csdn.net/ethanzhao/article/details/4406017