oracle 熱備指令碼 .

Aminiy發表於2013-12-02

此指令碼只使用與檔案系統上面的資料庫,只是簡單的指令碼,不適合帶庫上的oracle,那個需要小小的改動。

#!/bin/bash
source ~/.bash_profile
export NLS_LANG=AMERICAN_AMERICA.UTF8

#定義時間
TIME=`date +%Y-%m-%d[%R]`

#清空SQL語句
>/tmp/hotbak.sql

#熱備目錄
dir =/tmp/hotback

#備份目錄
dir_bak = /tmp/hot

#登陸sqlplus
sqlplus -S /nolog<>rizhi.log
connect / as sysdba;
set heading off
set verify off
set trimspool off
set pagesize 0
set linesize 200          
spool /tmp/hotbak.sql
select ' cp ' ||name|| ' /tmp/hot'  from v$datafile;
spool off
alter database begin backup;
start /tmp/hotbak.sql
alter database end backup;
alter database backup controlfile to '/tmp/hot/controlbak.ctl';
create pfile = '/tmp/hot/initorcl.ora' from spfile;
quit
EOF
exit

cd $dir_bak
ls * |while read line
do
        cp $line $dir/$line_${TIME}
done

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24492954/viewspace-1061862/,如需轉載,請註明出處,否則將追究法律責任。

相關文章