linux oracle自动备份脚本

1、备份脚本:

#!/bin/sh
 
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export ORACLE_SID=orcl
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
 
export DATA_DIR=/home/bakup/data
export LOGS_DIR=/home/bakup/logs
export DELTIME=`date -d "30 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 shop/lyisABC0987@orcl file=$DATA_DIR/$BAKUPTIME.dmp log=$LOGS_DIR/$BAKUPTIME.log
 
echo "Delete the file bakup before 30 days..."
rm -rf $DATA_DIR/$DELTIME*.dmp
rm -rf $LOGS_DIR/$DELTIME*.log
echo "Delete the file bakup successfully. "
 
echo "Bakup completed."

赋予备份目录oracle权限

chown -R oracle:oinstall /home/bakup

 

2、添加到任务调度crontab -u oracle -e

1 3 * * * /home/bakup/bakup.sh

即每天凌晨3点01分进行备份
如需每天备份多次,可设置不同时间段备份:
例如:0 3,13,18 * * * /home/bakup/bakup.sh,即每天3点、13点、18点进行备份。
说明:文件备份目录,用户oracle必须有更改权限,否则无法备份。