oracle的trc_trm,oracle11g Rman 备份脚本

1、Rman备份脚本

备份策略:周天0级备份,其他时候1级备份

########################################################################

## kfc_incremental_hot_database_backup.sh ##

## created by NBU TEMP ##

## 2012-3-8 ##

#########################################################################

#!/bin/ksh

export LANG=en_US

BACKUP_DATE=`date +%d`

RMAN_LOG_FILE=/home/oracle/backup/log/backupinfo.out

TODAY=`date`

USER=`id|cut -d "(" -f2|cut -d ")" -f1`

echo "-----------------$TODAY-------------------">$RMAN_LOG_FILE

ORACLE_HOME=/opt/oracle/product/11.2.0/dbhome_1

export ORACLE_HOME

RMAN=$ORACLE_HOME/bin/rman

export RMAN

ORACLE_SID=kfsjora

export ORACLE_SID

ORACLE_USER=oracle

export ORACLE_USER

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

#touch $RMAN_LOG_FILE

chmod 666 $RMAN_LOG_FILE

WEEK_DAILY=`date +%a`

case "$WEEK_DAILY" in

"Mon")

BAK_LEVEL=1

;;

"Tue")

BAK_LEVEL=1

;;

"Wed")

BAK_LEVEL=1

;;

"Thu")

BAK_LEVEL=1

;;

"Fri")

BAK_LEVEL=1

;;

"Sat")

BAK_LEVEL=1

;;

"Sun")

BAK_LEVEL=0

;;

"*")

BAK_LEVEL=error

esac

export BAK_LEVEL=$BAK_LEVEL

echo "Today is : $WEEK_DAILY incremental level= $BAK_LEVEL">>$RMAN_LOG_FILE

RUN_STR="

BAK_LEVEL=$BAK_LEVEL

export BAK_LEVEL

ORACLE_HOME=$ORACLE_HOME

export ORACLE_HOME

ORACLE_SID=$ORACLE_SID

export ORACLE_SID

$RMAN TARGET sys/qhyc_pass CATALOG kfcrman/kfcrman@kfcrman msglog $RMAN_LOG_FILE append <

run

{

allocate channel c1 type disk;

allocate channel c2 type disk;

backup incremental level= $BAK_LEVEL skip inaccessible filesperset 5 Database format='/opt/kfsjora_backup/orcl_lev"$BAK_LEVEL"_%U_%T' tag='orcl_lev"$BAK_LEVEL"' ;

sql 'alter system archive log current';

backup archivelog all tag='arc_bak' format='/opt/kfsjora_backup/arch_%U_%T' skip inaccessible filesperset 5 not backed up 1 times delete input;

backup current controlfile tag='bak_ctlfile' format='/opt/kfsjora_backup/ctl_file_%U_%T';

backup spfile tag='spfile' format='/opt/kfsjora_backup/ORCL_spfile_%U_%T';

release channel c2;

release channel c1;

}

report obsolete;

delete noprompt obsolete;

crosscheck backup;

delete noprompt expired backup;

list backup summary;

resync catalog;

EOF

"

# Initiate the command string

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/sh -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 " oracle@kfc.localdomain < $RMAN_LOG_FILE

exit $RSTAT

2、删除归档备份和oracle trc等文件的脚本

#!/bin/ksh

# ##################################################################

#

# delete_archvivelog_backup_and_trc_trm_file.sh

#

#

# ##################################################################

PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin

export PATH

#find /opt/kfsjora_backup -mtime +15 -name "arch_*" -exec rm "{} /;"

find /opt/kfsjora_backup -mtime +15 -name "arch_*" -exec rm {} \;

find /opt/oracle/admin/kfsjora/adump/ -mtime +15 -name "*.aud" -exec rm {} \;

find /opt/oracle/diag/rdbms/kfsjora/kfsjora/cdump/ -mtime +15 -name "*" -exec rm -fr {} \;

find /opt/oracle/diag/rdbms/kfsjora/kfsjora/trace/ -mtime +15 -name "*.tr?" -exec rm {} \;

3、导出Rman catalog数据 的脚本

#!/bin/ksh

# ##################################################################

#

# exprman.sh

#

#

# ##################################################################

ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1; export ORACLE_HOME

PATH=/usr/bin:/usr/ucb:/etc:.:/usr/X/bin:/bin:$ORACLE_HOME/bin:/usr/sbin

export PATH

EXP_BASE=/home/oracle/backup/exprman

export EXP_BASE

NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

export NLS_LANG

if [ -s "$EXP_BASE/kfcrman_new.dmp" ];then

rm $EXP_BASE/kfcrman_old.dmp

mv $EXP_BASE/kfcrman_new.dmp $EXP_BASE/kfcrman_old.dmp

fi

exp kfcrman/kfcrman@kfcrman tablespaces=KFC3850 file=$EXP_BASE/kfcrman_new.dmp >>$EXP_BASE/../log/expkfcrman.log 2>&1

4、设置 crontab 定期执行上述脚本

$crontab -e

加入如下内容

00 1 * * * /home/oracle/backup/script/kfc_incremental_hot_database_backup.sh &

00 2 * * * /home/oracle/backup/script/delete_archvivelog_backup_and_trc_trm_file.sh >/home/oracle/backup/log/log_delete_archvivelog_backup_and_trc_trm_file.log 2>&1 &

00 5 1 * * /home/oracle/backup/script/expkfcrman.sh

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值