|  
  (1)远程TELNET备份数据到磁带机的SHLL脚本 
lgmfis:/u01/Oracle/CIC/BACKUP ] cat TAPE_BACKUP.sh 
: ${OK=0} ${FAIL=1} ${CANCEL=3} 
: ${MM=`date +%m`} 
: ${DD=`date +%d`} 
: ${YY=`date +%Y`} 
: ${DEVFILn='/dev/rmt/0cn'} 
- 
  
: ${FLOG=/u01/Oracle/CIC/LOG/TAPE_bk_${MM}${DD}.log} 
: ${FLST=/u01/Oracle/CIC/LOG/TAPE_bk_${MM}${DD}.lst} 
: ${HOST=`uname -n`} 
. /u01/Oracle/CIC/BACKUP/common.sh 
START_YMD=`date +%Y%m%d` 
START_HMS=`date +%H%M%S` 
echo "  $HOST TAPE Backup start at $START_YMD $START_HMS    "     >> $FLOG 
#chkdate=`get_before_date ${YY}${MM}${DD}` 
#tmpdate=`expr substr $chkdate 5 5` 
/usr/bin/mt -f ${DEVFILn} rewind 
if [ $? -eq 0 ] 
then 
   echo "## Tape Check : Success/n"                          >> $FLOG 
   echo "## Tape Check : Success/n" 
else 
   echo "## Tape Check : Error(Insert tape into Device)/n"   >> $FLOG 
   echo "## Tape Check : Error(Insert tape into Device)/n" 
   exit ${FAIL} 
fi 
echo "## Step 1 : FULL Backup                 ###"        >> $FLOG 
cd / 
find fz02/RMANBK/lgmfis/*${MM}${DD}* -print|sort -rn +1|head -9| cpio -ocv -H od 
c -C 30720 -O $DEVFILn | tee -a $FLST 
find u08/EXP_BK/FZLFMES/*${MM}${DD}.* -print | cpio -ocv -H odc -C 30720 -O $DEV 
FILn | tee -a $FLST 
 
mt -f $DEVFILn offline 
echo "## Step 1 : FULL Backup    End             ###"        >> $FLOG 
echo "please insert the secound tape" 
Getyn "Was the secound tape insert? (y/n)" 
echo "## Step 2 : lgmfis db file & EXP Backup                 ###"        >> $FL 
OG 
/usr/bin/mt -f ${DEVFILn} rewind 
cd / 
find fz02/RMANBK/lgmfis/*${YY}${MM}${DD}* -print|sort -n +1|head -7| cpio -ocv - 
H odc -C 30720 -O $DEVFILn | tee -a $FLST 
#find u08/EXP_BK/lgmfis/*${MM}${DD}.* -print | cpio -ocv -H odc -C 30720 -O $DEV 
FILn | tee -a $FLST 
echo "## Step 2 : lgmfis db file & EXP Backup    END             ###"        >> 
$FLOG 
mt -f $DEVFILn offline 
echo "please insert the third tape" 
Getyn "Was the third tape insert? (y/n)" 
/usr/bin/mt -f ${DEVFILn} rewind 
cd / 
echo "## Step 3 : lgmfis arch & FZLFMES DATAFILE & ARCH & export Backup 
        ###"        >> $FLOG 
find fz01/RMANBK/FZLFMES/*${MM}${DD}* -print | cpio -ocv -H odc -C 30720 -O $DEV 
FILn | tee -a $FLST 
find fz02/RMANBK/lgmfis/*${MM}${DD}* -print|sort -rn +1|sed -n '10,11p;11q'| cpi 
o -ocv -H odc -C 30720 -O $DEVFILn | tee -a $FLST 
echo "## Step 3 : lgmfis arch & FZLFMES DATAFILE & ARCH & export Backup   End 
 ###"   >> $FLOG 
mt -f $DEVFILn offline 
echo "please insert the fourth tape" 
Getyn "Was the fourth tape insert? (y/n)" 
/usr/bin/mt -f ${DEVFILn} rewind 
cd / 
echo "## Step 4 : lgmfis arch & FZLFMES DATAFILE & ARCH & export Backup 
        ###"        >> $FLOG 
find u08/EXP_BK/lgmfis/*${MM}${DD}.* -print | cpio -ocv -H odc -C 30720 -O $DEVF 
ILn | tee -a $FLST 
find u08/RMANBK/lgmfis/*${MM}${DD}* -print | cpio -ocv -H odc -C 30720 -O $DEVFI 
Ln | tee -a $FLST 
echo "## Step 4 : lgmfis arch & FZLFMES DATAFILE & ARCH & export Backup   End 
 ###"   >> $FLOG 
cd / 
 
(2)自动RMAN脚本: 
[lgmfisu:root] /u01/Oracle/CIC/BACKUP> cat DB_FULL_lgmfis.sh 
MM=`date +%m` 
DD=`date +%d` 
YY=`date +%y` 
RMAN_LOG_FILE=/u01/Oracle/CIC/LOG/FULL_HOT_lgmfis_${YY}${MM}${DD}.log 
Oracle_HOME=/u01/app/oracle/product/9.2.0 
export Oracle_HOME 
Oracle_SID=lgmfis 
export Oracle_SID 
Oracle_HOME=$ORACLE_HOME 
export Oracle_HOME 
Oracle_SID=$ORACLE_SID 
export Oracle_SID 
#find /fz02/RMANBK/lgmfis -mtime +0 -exec rm {} /; 
find /u08/RMANBK/lgmfis -mtime +0 -exec rm {} /; 
rm -f /fz02/RMANBK/lgmfis/db_full* 
/u01/app/Oracle/product/9.2.0/bin/rman target / nocatalog msglog $RMAN_LOG_FILE 
append << EOF 
RUN { 
BACKUP FULL 
    FILESPERSET 4 
    FORMAT '/fz02/RMANBK/lgmfis/db_full_%T_%s_%p' 
    DATABASE; 
sql 'alter system archive log current'; 
BACKUP 
   filesperset 20 
   FORMAT '/u08/RMANBK/lgmfis/al_%T_%s_%p' 
   ARCHIVELOG ALL DELETE INPUT; 
BACKUP 
    FORMAT '/fz02/RMANBK/lgmfis/cntrl_%T_%s_%p' 
    CURRENT CONTROLFILE; 
} 
EOF 
#find /fz02/RMANBK/lgmfis -mtime +0 -exec rm {} /; 
#find /u08/RMANBK/lgmfis -mtime +0 -exec rm {} /; 
you have mail in /var/mail/root 
[lgmfisu:root] /u01/Oracle/CIC/BACKUP> 
mt -f $DEVFILn offline 
END_YMD=`date +%Y%m%d` 
END_HMS=`date +%H%M%S` 
echo "  $HOST  TAPE Backup Successfully Ended At $END_YMD $END_HMS    "     >> $ 
FLOG 
  
另外个文件:COMMON.SH 
[lgmfisu:root] /u01/Oracle/CIC/BACKUP> cat common.sh 
get_before_date() 
{ 
 Y=`expr substr $1 1 4` 
 M=`expr substr $1 5 2` 
 D=`expr substr $1 7 2` 
 YY=`expr $Y - 1` 
 MM=`expr $M - 1` 
 DD=`expr $D - 1` 
 MM=`printf "%02d" $MM` 
 DD=`printf "%02d" $DD` 
 dd=$Y$MM 
 dad=`get_mon_days $dd` 
 be_date=$Y$M$DD 
 if [ $D -eq 01 ] 
 then 
 if [ $M -ne 01 ] 
 then 
 be_date=$Y$MM$dad 
 fi 
 if [ $M -eq 01 ] 
                then 
                        be_date=$YY"1231" 
                fi 
   fi 
        echo $be_date 
} 
 
Getyn() { 
       while echo "/n$* (y/n)? /c" 
               do read yn 
                        case "$yn" in 
                                [Yy] )  return $OK      ;; 
                                [Nn] )  ConfirmYn "cancel The Job ?" ;; 
                                  *  ) echo "Please enter y or n"  ;; 
                        esac 
                done 
 } 
ConfirmYn() { 
       while echo "/n$* (y/n)? /c" 
               do read yn 
                        case "$yn" in 
                                [Nn] ) return $OK       ;; 
                                [Yy] ) echo "/n The Job is canceled." 
                                       sleep 3 
                                       exit $CANCEL     ;; 
                                  *  ) echo "Please enter y or n"  ;; 
                        esac 
                done 
}  本文出自:亿恩科技【www.enkj.com】 
      
      
		服务器租用/服务器托管中国五强!虚拟主机域名注册顶级提供商!15年品质保障!--亿恩科技[ENKJ.COM] 
       |