此腳本只使用與文件系統上面的數據庫,只是簡單的腳本,不適合帶庫上的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
原文轉自:http://blog.csdn.net/haoxiaoyan/article/details/16947453