·¢²©ÎÄ
¸öÈË×ÊÁÏ
  • ²©¿Í·ÃÎÊ£º201209
  • ²©ÎÄÊýÁ¿£º71
  • ²©¿Í»ý·Ö£º3000
  • ²©¿ÍµÈ¼¶£ºÖÐУ
  • ×¢²áʱ¼ä£º2006-08-18 17:41:38
¶©ÔÄÎҵIJ©¿Í
  • ¶©ÔÄ
  • ¶©Ôĵ½Ïʹû
  • ¶©Ôĵ½×¥Ïº
  • ¶©Ôĵ½Google
×ÖÌå´óС£º´ó ÖРС²©ÎÄ
Rman±¸·Ý (2006-08-21 13:10)
·ÖÀࣺ Oracle


   ǰЩÌìÓÉÓÚ¹¤×÷ÐèÒª£¬Ð´ÁËÒ»¸öÓÃrman½øÐÐ×Ô¶¯±¸·ÝµÄ½Å±¾¡£Ïַŵ½blogÖУ¬ËãÊÇÇì×£blogµÄ¿ªÍ¨°É£¡
   ½Å±¾ËµÃ÷£º
   1¡¢ÔËÐÐÕâ¸örman.shµÄ½Å±¾»á×Ô¶¯Éú³Érman_0.sh,rman_1.sh,rman_2.sh,(0,1,2·Ö±ð±íʾÔöÁ¿±¸·ÝµÄµÈ¼¶),ÇÒ»á¸ù¾Ý±¸·ÝµÄ²ßÂÔ×Ô¶¯µ÷ÓÃÕâÈý¸ösh¡£
   2¡¢¸ù¾Ý²»Í¬ÐèÇó£¬ÐèÒª¶Ôsh½Å±¾µÄ»·¾³±äÁ¿½øÐÐÐ޸ġ£
   3¡¢»á×Ô¶¯Éú³ÉrmanµÄ±¸·Ý¼¯Ä¿Â¼£¬rman½Å±¾shµÄ´æ·ÅĿ¼£¬ÒÔ¼°ÈÕ־Ŀ¼µÈshÔËÐл·¾³µÄĿ¼¡£
   4¡¢Èç¹ûÊÇrac»·¾³£¬ÔÚ±¸·Ýarchivelogʱ¿ÉÄÜÒªÐ޸ĶÔÓ¦µÄ´úÂë¡£
   5¡¢´Ësh½Å±¾ÔÚrh-as4+oracle10.2.0.1»·¾³Ï³ɹ¦Ó¦Ó㬾­Ð޸IJ¿·Ö´úÂëºó³É¹¦Ó¦ÓÃÓÚrh-as4+oracle10.1.0.1 rac»·¾³ÖС£
   ½Å±¾ÔËÐз½·¨£º
   1¡¢ÐÞ¸Äʵ¼ÊµÄ»·¾³±äÁ¿
   2¡¢°Ñrman.sh¼ÓÔØµ½ÏµÍ³oracle Óû§crontabÈÎÎñÖÐ
 
 
 
 
#!/bin/bash
#By XuefengMa 2006-08-10
#°æÈ¨ËµÃ÷:δ¾­ÔÊÐí²»µÃ×ªÔØ
#°æ±¾ËµÃ÷:ÿ´ÎÐ޸Ľű¾ÐèÒª¶Ô°æ±¾½øÐÐ˵Ã÷
#version: 1.0
#     Ôݲ»Ìṩ´Å´ø»ú±¸·ÝµÄ¹¦ÄÜ
#version:2.0
#     ÕûºÏÁËÒÔǰrman_0,rman_1,rman_2Èý¸ö½Å±¾£¬Ö»ÐèÒªÔËÐÐrman.sh¼´¿ÉÉú³É3¸ö½Å±¾£¬ÇÒ×Ô¶¯µ÷ÓÃ
#
#
#Set Oracle Environment Variable
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=/u01/app/oracle/10.2.0/db_1
export ORACLE_SID=ziqiu
export PATH=$ORACLE_HOME/bin:/bin:/usr/bin:/sbin
export LANG=en_US
export LC_ALL=en_US
export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
#
#
#
#
#Set The Script Environment Variable
#
SHELL=$SHELL
backup_base=/opt/rman
backup_controlfile=$backup_base/controlfile
backup_archivelog=$backup_base/archivelog
backup_database=$backup_base/database
backup_log=$backup_base/log
day=`date +%y%m%d`
log=$backup_log/$day.log
sid_target=ziqiu
sid_catalog=rman
user_target=sys
pwd_target=ziqiu
user_catalog=rman
pwd_catalog=rman
time=`date +%a`
sh_base=/home/oracle
sh_rman=$sh_base/rman
rman_0=$sh_rman/rman_0.sh
rman_1=$sh_rman/rman_1.sh
rman_2=$sh_rman/rman_2.sh
if [ -w $log ]
 then
  rm $log
fi  

if [ -n "`echo $$`" ]
 then
   echo "################# `date -u +%y%m%d%H%M%S` The Script Of RMAN Begin Now! #################\n">>$log
 else
   echo "################# `date -u +%y%m%d%H%M%S` The Script Of RMAN Is Defeat Begin Now! #################\n">>$log
   exit 1
fi

if [ ! -d $backup_controlfile ]
 then
   mkdir $backup_controlfile
   echo "################# `date -u +%y%m%d%H%M%S` Create The $backup_controlfile Succ! #################\n">>$log
fi

if [ ! -d $backup_archivelog ]
 then
   mkdir $backup_archivelog
   echo "################# `date -u +%y%m%d%H%M%S` Create The $backup_archivelog Succ! #################\n">>$log
fi

if [ ! -d $backup_spfile ]
 then
   mkdir $backup_spfile
   echo "################# `date -u +%y%m%d%H%M%S` Create The $backup_spfile Succ! #################\n">>$log
fi       

if [ ! -d $backup_database ]
 then
   mkdir $backup_database
   echo "################# `date -u +%y%m%d%H%M%S` Create The $backup_database Succ! #################\n">>$log
fi

if [ ! -d $backup_log ]
 then
   mkdir $backup_log
   echo "################# `date -u +%y%m%d%H%M%S` Create The $backup_log Succ! #################\n">>$log
fi
if [ ! -d $sh_rman ]
 then
   mkdir $sh_rman
   echo "################# `date -u +%y%m%d%H%M%S` Create The $sh_rman Succ! #################\n">>$log
fi
 
if [ ! -w $rman_0.sh ]
  then
  echo "#!$SHELL">>$rman_0
  echo "#Set Oracle Environment Variable">>$rman_0
    echo "export ORACLE_BASE=$ORACLE_BASE" >>$rman_0
    echo "export ORACLE_HOME=$ORACLE_HOME" >>$rman_0
    echo "export ORACLE_SID=$ORACLE_SID"   >>$rman_0
    echo "export PATH=$PATH"        >>$rman_0
    echo "export LANG=$LANG"        >>$rman_0
    echo "export LC_ALL=$LC_ALL"       >>$rman_0
    echo "export NLS_LANG=$NLS_LANG"    >>$rman_0
   
   
   
    echo "#Set The Script Environment Variable" >>$rman_0
    echo "backup_base=$backup_base"       >>$rman_0
    echo "backup_controlfile=$backup_controlfile">>$rman_0
    echo "backup_archivelog=$backup_archivelog" >>$rman_0
    echo "backup_database=$backup_database"   >>$rman_0
    echo "backup_log=$backup_log"        >>$rman_0
    echo "sid_target=$sid_target"        >>$rman_0
    echo "sid_catalog=$sid_catalog"       >>$rman_0
    echo "user_target=$user_target"       >>$rman_0
    echo "pwd_target=$pwd_target"        >>$rman_0
    echo "user_catalog=$user_catalog"      >>$rman_0
    echo "pwd_catalog=$pwd_catalog"       >>$rman_0
   
    echo "#Backup The Controlfile"       >>$rman_0
   
    echo "rman target $user_target/$pwd_target@$sid_target catalog $user_catalog/$pwd_catalog@$sid_catalog  <<EOF">>$rman_0
    echo "configure controlfile autobackup on;" >>$rman_0 
    echo "run"                 >>$rman_0
    echo "     {"             >>$rman_0
    echo "     allocate channel d1 type disk;"         >>$rman_0
    echo "     backup current controlfile format '$backup_controlfile/%d_%T_%s_%p.ctl';" >>$rman_0
    echo "     release channel d1; "              >>$rman_0
    echo "     }"             >>$rman_0
   
   
    echo "run "                 >>$rman_0
    echo "          {"             >>$rman_0
    echo "           allocate channel d1 type disk;"        >>$rman_0
    echo "           allocate channel d2 type disk;"        >>$rman_0
    echo "           allocate channel d3 type disk;"        >>$rman_0
    echo "           backup incremental level=0 database format '$backup_database/incr0_%d_%T_%s_%p.bak' ;">>$rman_0
    echo "           release channel d1;"             >>$rman_0
    echo "           release channel d2;"             >>$rman_0
    echo "           release channel d3;"             >>$rman_0
    echo "          }"             >>$rman_0
    echo "run"                 >>$rman_0
    echo "     {"             >>$rman_0
    echo "     allocate channel d1 type disk ;"        >>$rman_0
    echo "     allocate channel d2 type disk ;"        >>$rman_0
    echo "     sql'alter system archive log current';"     >>$rman_0
    echo "     backup  archivelog all format '$backup_archivelog/%d_%T_%s_%p.arc' delete all input;" >>$rman_0
    echo "     release channel d1;"    >>$rman_0
    echo "     release channel d2;"    >>$rman_0
    echo "     }"                      >>$rman_0
   
    echo "exit          "      >>$rman_0
fi
if [ ! -w $rman_1.sh ]
  then
  echo "#!$SHELL">>$rman_1
  echo "#Set Oracle Environment Variable">>$rman_1
    echo "export ORACLE_BASE=$ORACLE_BASE" >>$rman_1
    echo "export ORACLE_HOME=$ORACLE_HOME" >>$rman_1
    echo "export ORACLE_SID=$ORACLE_SID"   >>$rman_1
    echo "export PATH=$PATH"        >>$rman_1
    echo "export LANG=$LANG"        >>$rman_1
    echo "export LC_ALL=$LC_ALL"       >>$rman_1
    echo "export NLS_LANG=$NLS_LANG"    >>$rman_1
   
   
   
    echo "#Set The Script Environment Variable" >>$rman_1
    echo "backup_base=$backup_base"       >>$rman_1
    echo "backup_controlfile=$backup_controlfile">>$rman_1
    echo "backup_archivelog=$backup_archivelog" >>$rman_1
    echo "backup_database=$backup_database"   >>$rman_1
    echo "backup_log=$backup_log"        >>$rman_1
    echo "sid_target=$sid_target"        >>$rman_1
    echo "sid_catalog=$sid_catalog"       >>$rman_1
    echo "user_target=$user_target"       >>$rman_1
    echo "pwd_target=$pwd_target"        >>$rman_1
    echo "user_catalog=$user_catalog"      >>$rman_1
    echo "pwd_catalog=$pwd_catalog"       >>$rman_1
   
   
    echo "#Backup The Controlfile"       >>$rman_1
    #
    #
    echo "rman target $user_target/$pwd_target@$sid_target catalog $user_catalog/$pwd_catalog@$sid_catalog  <<EOF">>$rman_1
    echo "configure controlfile autobackup on;">>$rman_1
    echo "run ">>$rman_1
    echo "     {">>$rman_1
    echo "     allocate channel d1 type disk;">>$rman_1
    echo "     backup current controlfile format '$backup_controlfile/%d_%T_%s_%p.ctl';">>$rman_1
    echo "     release channel d1; ">>$rman_1
    echo "     }">>$rman_1
    echo "">>$rman_1
    echo "">>$rman_1
    echo "run ">>$rman_1
    echo "          {">>$rman_1
    echo "           allocate channel d1 type disk;">>$rman_1
    echo "           allocate channel d2 type disk;">>$rman_1
    echo "           allocate channel d3 type disk;">>$rman_1
    echo "           backup incremental level=1 database format '$backup_database/incr1_%d_%T_%s_%p.bak' ;">>$rman_1
    echo "           release channel d1;">>$rman_1
    echo "           release channel d2;">>$rman_1
    echo "           release channel d3;">>$rman_1
    echo "          }">>$rman_1
    echo "run">>$rman_1
    echo "     {">>$rman_1
    echo "     allocate channel d1 type disk ;">>$rman_1
    echo "     allocate channel d2 type disk ;">>$rman_1
    echo "     sql'alter system archive log current';">>$rman_1
    echo "     backup  archivelog all format '$backup_archivelog/%d_%T_%s_%p.arc' delete all input;">>$rman_1
    echo "     release channel d1;">>$rman_1
    echo "     release channel d2;">>$rman_1
    echo "     }">>$rman_1
    echo "">>$rman_1
    echo "exit          "      >>$rman_1
fi
if [ ! -w $rman_2.sh ]
  then
  echo "#!$SHELL">>$rman_2
  echo "#Set Oracle Environment Variable">>$rman_2
    echo "export ORACLE_BASE=$ORACLE_BASE" >>$rman_2
    echo "export ORACLE_HOME=$ORACLE_HOME" >>$rman_2
    echo "export ORACLE_SID=$ORACLE_SID"   >>$rman_2
    echo "export PATH=$PATH"        >>$rman_2
    echo "export LANG=$LANG"        >>$rman_2
    echo "export LC_ALL=$LC_ALL"       >>$rman_2
    echo "export NLS_LANG=$NLS_LANG"    >>$rman_2
   
   
   
    echo "#Set The Script Environment Variable" >>$rman_2
    echo "backup_base=$backup_base"       >>$rman_2
    echo "backup_controlfile=$backup_controlfile">>$rman_2
    echo "backup_archivelog=$backup_archivelog" >>$rman_2
    echo "backup_database=$backup_database"   >>$rman_2
    echo "backup_log=$backup_log"        >>$rman_2
    echo "sid_target=$sid_target"        >>$rman_2
    echo "sid_catalog=$sid_catalog"       >>$rman_2
    echo "user_target=$user_target"       >>$rman_2
    echo "pwd_target=$pwd_target"        >>$rman_2
    echo "user_catalog=$user_catalog"      >>$rman_2
    echo "pwd_catalog=$pwd_catalog"       >>$rman_2
   
   
    echo "#Backup The Controlfile">>$rman_2
    #
    #
    echo "rman target $user_target/$pwd_target@$sid_target catalog $user_catalog/$pwd_catalog@$sid_catalog  <<EOF">>$rman_2
    echo "configure controlfile autobackup on;">>$rman_2
    echo "run ">>$rman_2
    echo "     {">>$rman_2
    echo "     allocate channel d1 type disk;">>$rman_2
    echo "     backup current controlfile format '$backup_controlfile/%d_%T_%s_%p.ctl';">>$rman_2
    echo "     release channel d1; ">>$rman_2
    echo "     }">>$rman_2
    echo "">>$rman_2
    echo "">>$rman_2
    echo "run ">>$rman_2
    echo "          {">>$rman_2
    echo "           allocate channel d1 type disk;">>$rman_2
    echo "           allocate channel d2 type disk;">>$rman_2
    echo "           allocate channel d3 type disk;">>$rman_2
    echo "           backup incremental level=2 database format '$backup_database/incr2_%d_%T_%s_%p.bak' ;">>$rman_2
    echo "           release channel d1;">>$rman_2
    echo "           release channel d2;">>$rman_2
    echo "           release channel d3;">>$rman_2
    echo "          }">>$rman_2
    echo "run">>$rman_2
    echo "     {">>$rman_2
    echo "     allocate channel d1 type disk;">>$rman_2
    echo "     allocate channel d2 type disk ;">>$rman_2
    echo "     sql'alter system archive log current';">>$rman_2
    echo "     backup  archivelog all format '$backup_archivelog/%d_%T_%s_%p.arc' delete all input;">>$rman_2
    echo "     release channel d1;">>$rman_2
    echo "     release channel d2;">>$rman_2
    echo "     }">>$rman_2
    echo "">>$rman_2
    echo "exit        ">>$rman_2
fi       
chmod u+x $rman_0 $rman_1 $rman_2
if [ $time = "Mon" ]
  then echo "################# `$rman_0`################# \n">>$log
elif [ $time = "Tue" ]
  then  echo "################# `$rman_2`################# \n">>$log
elif [ $time = "Wed" ]
  then  echo "################# `$rman_2`################# \n">>$log
elif [ $time = "Thu" ]
  then echo "################# `$rman_1`################# \n">>$log
elif [ $time = "Fri" ]
  then echo "################# `$rman_2`################# \n">>$log
elif [ $time = "Sat" ]
  then echo "################# `$rman_2`################# \n">>$log
else
#[ $time = "Sun" ]
     echo "################# `$rman_0`################# \n">>$log
fi

Ç×£¬Äú»¹Ã»ÓеǼ,Çë[µÇ¼]»ò[×¢²á]ºóÔÙ½øÐÐÆÀÂÛ