ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 给Indonesia field写的rman备全库脚本

给Indonesia field写的rman备全库脚本

原创 Linux操作系统 作者:edeed 时间:2019-05-12 17:27:05 0 删除 编辑

#!/bin/ksh
#################################################################################
# automatic backup full database everyday using rman for Indonesia Bandung
# by Encle 2007-7-20 15:22:17
#
# $ crontab -e
# 30 20 * * * /opt/backup/rman_backup.sh
#
# recover full database:
# $ rman target /
# rman> shutdown immediate
# rman> startup mount
# rman> run{
# --SET UNTIL TIME = '2007-05-09.11:44:00'; 基于时间点的不完全恢复
# restore database;
# recover database;
# sql "alter database open";
# }
#
#################################################################################

## set env,need modify
ORACLE_HOME=/opt/oracle/db01/app/oracle/product/9.2.0;export ORACLE_HOME
ORACLE_SID=ORCL;export ORACLE_SID
NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1; export NLS_LANG
TARGET_LOGIN="target /";export TARGET_LOGIN
CATALOG_LOGIN="nocatalog";export TARGET_LOGIN
BACKUP_BASE="/opt/backup";export BACKUP_BASE

## set env,don't modify
PATH=.:$ORACLE_HOME/bin:/bin:/sbin:/usr/sbin:$PATH;export PATH
NLS_DATE_LANGUAGE=AMERICAN; export NLS_DATE_LANGUAGE
NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';export NLS_DATE_FORMAT;
BACKUP_TARGET="${BACKUP_BASE}/data";export BACKUP_TARGET
BACKUP_LOGDIR="${BACKUP_BASE}/log";export BACKUP_LOGDIR
BACKUP_LOG="log ${BACKUP_LOGDIR}/rman_`date +%Y%m%d`.log";export BACKUP_LOG
RMAN_LOG="${BACKUP_LOGDIR}/rman_backup.log";export RMAN_LOG

## write log
echo "" >> ${RMAN_LOG}
echo "########################Begin at `date +%Y-%m-%d.%H:%M:%S`#############################" >> ${RMAN_LOG}

## whether the responsible directory exist
if ! test -d ${BACKUP_TARGET}
then
mkdir ${BACKUP_TARGET}
fi
if ! test -d ${BACKUP_LOGDIR}
then
mkdir ${BACKUP_LOGDIR}
fi

## write log
echo "TARGET_LOGIN=${TARGET_LOGIN}" >> ${RMAN_LOG}
echo "CATALOG_LOGIN=${CATALOG_LOGIN}" >> ${RMAN_LOG}
echo "BACKUP_TARGET=${BACKUP_TARGET}" >> ${RMAN_LOG}
echo "BACKUP_LOGDIR=${BACKUP_LOGDIR}" >> ${RMAN_LOG}
echo "BACKUP_LOG=${BACKUP_LOG}" >> ${RMAN_LOG}
echo "RMAN_LOG=${RMAN_LOG}" >> ${RMAN_LOG}

## rename old backup
cd ${BACKUP_TARGET}
mv fulldb_backup.bak fulldb_backup.old >> ${RMAN_LOG}
mv arch_backup.bak arch_backup.old >> ${RMAN_LOG}

## backup start
$ORACLE_HOME/bin/rman $TARGET_LOGIN $CATALOG_LOGIN $BACKUP_LOG<<-EOF >> ${RMAN_LOG} 2>&1

## if nocatalog,open controlfile autobackup
CONFIGURE CONTROLFILE AUTOBACKUP ON;

## backup datafile/spfile/controlfile
backup full database include current controlfile format '$BACKUP_TARGET/fulldb_backup.bak';

## backup archivelog
run {
sql 'alter system archive log current';
crosscheck archivelog all;
backup archivelog all delete input format '$BACKUP_TARGET/arch_backup.bak' ;
}

#delete obsolete and expired backup and archivelog
run {
delete noprompt obsolete;
crosscheck archivelog all;
delete noprompt expired archivelog all;
crosscheck backup;
delete noprompt expired backup;
}

exit
EOF

## automatic ftp to another server
echo "" >> ${RMAN_LOG}
echo "begin ftp at `date +%Y-%m-%d.%H:%M:%S`" >> ${RMAN_LOG}
cd ${BACKUP_TARGET}
ftp -n <open 10.249.1.70
user root nec
prompt off
cd /backup
mput *.bak
close
bye
!
echo "end ftp at `date +%Y-%m-%d.%H:%M:%S`" >> ${RMAN_LOG}

echo "##########################End at `date +%Y-%m-%d.%H:%M:%S`#############################" >> ${RMAN_LOG}


09121978

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/10881/viewspace-178086/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2002-04-30

  • 博文量
    59
  • 访问量
    52180