shell腳本之全庫熱備份

#!/bin/bash
backup_dir=/oracle/backup
log_file=$ORACLE_BASE/admin/$ORACLE_SID/hold_backup_$ORACLE_SID.log
echo "Backuping cold backup..." >$log_file
data>>$log_file

sqlplus -s / as sysdba <<EOF >>$log_file
alter database backup controlfile to '$backup_dir/backup_controlfile.ctl';
set pagesize 0 linesize 1000 feedback off heading off
column tablespace_name noprin
column sortorder noprin
column textout format a120

spool hold_backup_$ORACLE_SID.sql

select tablespace_name,'1' sortorder,'alter tablespace '||tablespace_name||' begin backup ;' textout
from dba_data_files
union
select tablespace_name ,'2' sortorder,'host cp'||file_name||' '||' $backup_dir' textout
from dba_data_files
union
select tablespace_name,'3' sortorder,'alter tablespace '|| tablespace_name ||' end backup ;' textout
from dba_data_files
order by tablespace_name,sortorder,textout;

select 'alter system archive log current;' from dual;
spool off;


@hold_backup_$ORACLE_SID.sql

exit
EOF

rm -f hold_backup_$ORACLE_SID.sql
echo "Hot backup finished.">>$log_file



PS:同全庫冷備份

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章