Oracle冷备和热备脚本
冷备脚本:
set
feedback
off
set
heading
off
set
verify
off
set
trimspool
off
set
echo
off
set
time
off
set
timing
off
set
pagesize 0
set
linesize 200
define dir=
'/backup/cold/mike'
;
define diroutmike=
'/u01/scripts/coldscr/mikecoldout.sql'
;
spool &diroutmike
select
'!cp '
||
name
||
' &dir'
from
v$datafile
order
by
file#;
select
'!cp '
||
name
||
' &dir'
from
v$controlfile;
spool
off
;
shutdown immediate;
@&diroutmike
startup;
以上脚本放在/u01/scripts/coldscr/mikecold.sql
在数据库运行时可以运行此脚本来冷备。
热备脚本:
set
feedback
off
set
pagesize 0
set
heading
off
set
verify
off
set
linesize 100
set
trimspool
on
set
echo
off
set
time
off
set
timing
off
undefine mikedir
undefine mikescp
define mikedir=
'/backup/hot'
define mikescp=
'/u01/scripts/hotscr/mikehotout.sql'
declare
cursor
cur_tablespace
is
select
tablespace_name
from
dba_tablespaces
where
status <>
'READ ONLY'
a
nd contents
not
like
'%TEMP%'
;
cursor
cur_datafile(tn varchar2)
is
select
file_name
from
dba_data_files
where
tablespace_name=tn;
begin
for
ct
in
cur_tablespace loop
dbms_output.put_line(
'alter tablespace '
||ct.tablespace_name||
' begin backup;'
);
for
cd
in
cur_datafile(ct.tablespace_name) loop
dbms_output.put_line(
'! cp '
||cd.file_name||
' &mikedir'
);
end
loop;
dbms_output.put_line(
'alter tablespace '
||ct.tablespace_name||
' end backup;'
);
end
loop;
end
;
/
以上脚本放在/u01/scripts/hotscr/mikehot.sql
在数据库运行时可以运行此脚本来热备。