shell脚本利用rman实现自动备份数据库

脚本参数:

b     backup path 
 l     backup level with 0(full) or 1(incremental) 
 s     the user SYS pawword 
不利用参数则采用默认,默认备份路径为:$ORACLE_BASE/flash_recovery_area/ORCL/backupset  。备份默认级别则为:周日全备,其他增量备份。默认sys密码为:123456(密码可在脚本修改)。自动删除过期备份。采用自动分配通道进行备份。

脚本代码如下:

#!/bin/bash
#This script is used to backup Oracle database with RMAN
#last time: 2019.2.27
[ $# == 0 ] && echo -e " b     backup path \n l     backup level with 0(full) or 1(incremental) \n s     the user SYS pawword "

#: variables setting
while getopts b:l:s: option
do
    case "$option" in
  b)
            BACK_PATH="$OPTARG"
        ;;
  l)
            if
        [ "$OPTARG" == 0 ] ;
        then
        LEVEL=0
        elif
        [ "$OPTARG" == 1 ] ;
        then
        LEVEL=1
        else        echo "this script Provide only level "0" or "1" backup"
                exit 1
        fi
        ;;
  s)
        PASSWD="$OPTARG"
        ;;
        \?)
            echo "-b : the path in which backup files"
            echo "-l : RMAN backup level"
            echo "-s : the user SYS pawword"
            exit 1
        ;;
    esac
done


weekday='date +%w'
if [ -z "$BACK_PATH" ] ;
then
    BACK_PATH="$ORACLE_BASE"/flash_recovery_area/ORCL/backupset
    echo -e "WARNING :: The backup piecies will be stored in $ORACLE_BASE/flash_recovery_area/ORCL/backupset\n "
fi

if [ -z "$LEVEL" ] ;
then
    if [ "$weekday" == 1 ] ;
    then LEVEL=0
    else LEVEL=1
    fi
fi

if [ -z "$PASSWD" ] ;
then
PASSWD="123456"
fi
BACK_FORMAT="$BACK_PATH"/db"$LEVEL"'_%d_%T_%u'
 echo "BACKUP_PATH: $BACK_PATH"
 echo "BACKUP_LEVEL:" "$LEVEL"
 echo "BACKUP_FORMAT: $BACK_FORMAT"

back_cmd='
run{
backup as compressed backupset incremental level '"$LEVEL"' format '\'"$BACK_FORMAT"\'' database include current controlfile plus archivelog delete input;\n
crosscheck archivelog all;\n
}
crosscheck archivelog all;\n
delete noprompt expired archivelog all;\n
report obsolete;\n
delete noprompt obsolete;\n
exit
'
#excute rman cmd
echo -e $back_cmd|rman target sys/$PASSWD
exit

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值