set serveroutput on
set trimspool on
set line 500
set head off
set feed off
spool begin_backup.sh
declare
cp_cmd constant varchar2(30) := 'cp';
cp_target constant varchar2(30) := '/u01/backup/';
DBname varchar2(30);
logmode varchar2(30);
begin
select name, log_mode into dbname, logmode from sys.v_$database;
if logmode <> 'ARCHIVELOG' then
raise_application_error(-20000, 'ERROR: Database must be in ARCHIVELOG mode!');
return;
end if;
dbms_output.put_line('spool backup.'||DBname||'.'||to_char(sysdate, 'ddMonyy')||'.log');
-- View all tablespaces except TEMP tablespace
for c1 in (select tablespace_name ts from sys.dba_tablespaces where contents<>'TEMPORARY' )
loop
dbms_output.put_line('alter tablespace '||c1.ts||' begin backup;');
-- View tablespace's data files
for c2 in (select file_name fil from sys.dba_data_files
where tablespace_name = c1.ts)
loop
dbms_output.put_line('!'||cp_cmd||' '||c2.fil||' '||cp_target);
end loop;
dbms_output.put_line('alter tablespace '||c1.ts||' end backup;');
end loop;
-- Backup controlfile and switch logfiles
dbms_output.put_line('alter database backup controlfile to trace;');
dbms_output.put_line('alter database backup controlfile to '||''''||
cp_target||'control.'||dbname||'.'||
to_char(sysdate,'dd-mm-yyyy_HH24:MI')||''''||';');
dbms_output.put_line('alter system switch logfile;');
dbms_output.put_line('spool off');
end;
/
spool off
set head on
set feed on
set serveroutput off
@begin_backup.sh
exit
понедельник, 31 августа 2009 г.
Подписаться на:
Комментарии к сообщению (Atom)
Комментариев нет:
Отправить комментарий