2007年12月19日

back oracle script

#!/bin/sh
ORACLE_SID=test
BACKUP_DEST=/backup/cpio/test



case $1 in
        RMAN)
             export ORACLE_SID=rman
             export BACKUP_DEST=/backup/cpio/rman
        break ;;
 
        *)
              echo "Usage :RMAN"
              exit
        ;;
esac

BEGIN_TIME=`date`
DAY_D=`date +%m%d`
DAY=`date +%a`
GET_DATA_FILE_SCRIPT=/tmp/get_data_file_script.$ORACLE_SID.$DAY_D.sql
DATA_FILE_LIST_LOGFILE=/tmp/data_file_list.$ORACLE_SID.$DAY_D.lst
BACKUP_LOG=$BACKUP_DEST/$DAY_D.log
MailToBns=mymail@mail.com

ORACLE_BASE=/opt/app/oracle
ORACLE_HOME=$ORACLE_BASE/product/9.2.0
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
ORACLE_DOC=$ORACLE_BASE/doc
LD_LIBRARY_PATH=$ORACLE_HOME/lib
SHLIB_PATH=$ORACLE_HOME/lib:$ORACLE_HOME/cts/lib:/lib
PATH=$ORACLE_HOME/bin:$PATH:$JAVA_HOME/bin
TNS_ADMIN=$ORACLE_HOME/network/admin
NLS_LANG=AMERICAN_AMERICA.UTF8


rm -f $BACKUP_DEST/*

#產生執行備份的script內容
echo "
set echo off;
set heading off;
set feedback off;
set pagesize 0;
set linesize 140;
spool $DATA_FILE_LIST_LOGFILE
select 'tar -zcvf $BACKUP_DEST/'||  substr(name ,instr(name ,'/',-1)+1  )||'_$DAY_D.tar '||name from v\$datafile
union all
select 'tar -zcvf $BACKUP_DEST/'||  substr(name ,instr(name ,'/',-1)+1  )||'_$DAY_D.tar '||name from v\$tempfile
union all
select 'tar -zcvf $BACKUP_DEST/'||  substr(name ,instr(name ,'/',-1)+1  )||'_$DAY_D.tar '||name from v\$controlfile;
spool off;
exit;
" > $GET_DATA_FILE_SCRIPT

echo $ORACLE_SID

#取得datafile的清單
$ORACLE_HOME/bin/sqlplus '/ as sysdba' @$GET_DATA_FILE_SCRIPT

sqlplus "/ as sysdba" << EOF >> $BACKUP_LOG
shutdown immediate;
exit;
EOF


#進行備份

chmod 777  $DATA_FILE_LIST_LOGFILE
sh $DATA_FILE_LIST_LOGFILE

sqlplus "/ as sysdba" << EOF >> $BACKUP_LOG
startup;
exit;
EOF

ls -al $BACKUP_DEST/* >> $BACKUP_LOG



END_TIME=`date`

echo "===================================" >> $BACKUP_LOG
echo "Backup start time : $BEGIN_TIME" >> $BACKUP_LOG
echo "Backup finish time : $END_TIME" >> $BACKUP_LOG
echo "===================================" >> $BACKUP_LOG
mail -s "train  $ORACLE_SID offline backup on $DAY_D" $MailToBns < $BACKUP_LOG

rm -f $DATA_FILE_LIST_LOGFILE
rm -f $GET_DATA_FILE_SCRIPT

Posted by my_work at 樂多Roodo! │14:49 │回應(1)引用(0)DB
樂多分類:網路/3C 共同主題:Oracle 工具:編輯本文
Ads by Roodo! 

引用URL

http://cgi.blog.roodo.com/trackback/4683465
回應文章
[URL=http://www.haroldini.cn/mappa-bergamo] mappa bergamo [/URL] mappa bergamo [URL=http://www.haroldini.cn/fitness-girl] fitness girl [/URL] fitness girl [URL=http://www.haroldini.cn/salsa-e-merengue] salsa e merengue [/URL] salsa e merengue
Posted by Anthony at 2008年06月17日 16:52