数据库备份及存放

1.创建shell脚本

#!/bin/sh  
export ORACLE_BASE=/app/oracle  
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/db_1  
export ORACLE_SID=TDMS  
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin  
  
export NLS_LANG=AMERICAN_AMERICA.AL32UTF8  
  
export DATA_DIR=/tdms1/db/backup/data  
export LOGS_DIR=/tdms1/db/backup/logs  
export DELTIME=`date -d "7 days ago" +%Y%m%d`  
export BAKUPTIME=`date +%Y%m%d%H%M%S`  
export ORACLE_DUMP_DIR=/app/oracle/admin/TDMS/dpdump
  
mkdir -p $DATA_DIR  
mkdir -p $LOGS_DIR  
echo "Starting bakup..."  
echo "Bakup file path $ORACLE_DUMP_DIR/$BAKUPTIME.dmp"  
expdp test/test@orcl directory=DATA_PUMP_DIR  dumpfile=$BAKUPTIME.dmp log=$BAKUPTIME.log version=11.2.0.1.0

echo "Move backup data to $DATA_DIR ..."

mv $ORACLE_DUMP_DIR/$BAKUPTIME.dmp $DATA_DIR
mv $ORACLE_DUMP_DIR/$BAKUPTIME.log $LOGS_DIR
  
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."

 2.添加crontab路径

#crontab -e

0 23 * * * /opt/backup/autoBackup.sh  

3.查看定时器状态

   crontab -l

备注:

本例中使用expdp命令导出到默认目录后,对备份文件又做了迁移工作,此处是迁移到本机的其他目录中,对于分布式也可以迁移到其他服务器中,可采用命令scp 进行迁移

 

猜你喜欢

转载自mofeichen.iteye.com/blog/2153729