泰山神 发表于 2018-8-20 10:27:31

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 $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


页: [1]
查看完整版本: shell脚本之全库热备份