set feedback off
set heading off
set verify off
set trimspool off
set pagesize 0
set linesize 200
define dir = '/home/oracle/hotbak'
define script = '/tmp/hotbak_tb.sql'
ho rm &script
ho rm &dir/*
spool &script
select 'alter tablespace '|| tablespace_name ||' begin backup ;' ||
chr(10)||'ho cp ' || file_name || ' &dir ' ||
chr(10)||'alter tablespace '|| tablespace_name || ' end backup;'
from dba_data_files order by tablespace_name;
spool off
start &script
alter database backup controlfile to '&dir/controlbak.ctl';
create pfile = '&dir/initorcl.ora' from spfile;
--其中chr(10)表示换行,红色部分需要自行修改
--SQL> start hotbak.sql; --执行该脚本即可对数据库基于表空间进行热备