rman backup scripts

#!/bin/bash

BACKUP_DATE=`date +%y-%m-%d`
RMAN_LOG_FILE=${0}.out
TODAY=`date`
USER=`id|cut -d "(" -f2|cut -d ")" -f1`
echo "-----------------$TODAY-------------------">$RMAN_LOG_FILE
export ORACLE_HOME=/oracle/product/10.2.0/db_1
export RMAN=$ORACLE_HOME/bin/rman
export ORACLE_SID=orcl
export ORACLE_USER=oracle
echo "ORACLE_SID: $ORACLE_SID">>$RMAN_LOG_FILE
echo "ORACLE_HOME:$ORACLE_HOME">>$RMAN_LOG_FILE
echo "ORACLE_USER:$ORACLE_USER">>$RMAN_LOG_FILE
echo "==========================================">>$RMAN_LOG_FILE
echo "BACKUP DATABASE BEGIN......">>$RMAN_LOG_FILE
echo "                   ">>$RMAN_LOG_FILE
chmod 666 $RMAN_LOG_FILE
WORK_DIR=/arch/beifen/orcl/$BACKUP_DAT
mkdir -p $WORK_DIR
WEEK_DAILY=`date +%a`
RUN_STR="
ORACLE_HOME=$ORACLE_HOME
export ORACLE_HOME
ORACLE_SID=$ORACLE_SID
export ORACLE_SID

$RMAN TARGET  /  msglog $RMAN_LOG_FILE append <<EOF

run
{
allocate channel c1 type disk;
allocate channel c2 type disk;
backup  Database format='$WORK_DIR/orcl_full"$WEEK_DAILY"_%U_%T';
backup current controlfile tag='bak_ctlfile' format='$WORK_DIR/ctl_file_%U_%T';
release channel c2;
release channel c1;
}

run{
allocate channel a1 type disk connect sys/xxxxx@xxxx;
allocate channel a2 type disk connect sys/xxxxxx@xxxxxx;
sql 'alter system archive log current';
backup  format='$WORK_DIR/arch_%U_%T' archivelog all;
}

report obsolete; 
delete noprompt obsolete;
crosscheck backup;
delete noprompt expired backup;
EOF
"
if [ "$CUSER" = "root" ]
then 
    echo "Root Command String: $RUN_STR" >> $RMAN_LOG_FILE
    su - $ORACLE_USER -c "$RUN_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
else
    echo "User Command String: $RUN_STR" >> $RMAN_LOG_FILE
    /bin/bash -c "$RUN_STR" >> $RMAN_LOG_FILE
    RSTAT=$?
fi
# --------------------------------------------------------------------------- 
# Log the completion of this script.
# ---------------------------------------------------------------------------
if [ "$RSTAT" = "0" ]
then
    LOGMSG="ended successfully"
else
    LOGMSG="ended in error" 
fi
echo >> $RMAN_LOG_FILE 
echo Script $0 >> $RMAN_LOG_FILE 
echo ==== $LOGMSG on `date` ==== >> $RMAN_LOG_FILE 
echo >> $RMAN_LOG_FILE 
/bin/mailx -s "RMAN Backup SID " rong.liu@163.com < $RMAN_LOG_FILE 
exit $RSTAT 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值