一、恢復數據庫:
恢復數據庫:
run {
startup force mount;
restore database;
recover database;
sql 'alter database open';
}
恢復數據庫(磁盤損壞)
run {
startup force mount;
set newname for datafile 1 to '';
set newname for datafile 2 to '';
set newname for datafile 3 to '';
...
restore database;
switch datafile all;
recover database;
sql 'alter database open';
}
二、恢復數據文件
恢復system表空間數據文件
run {
startup force mount;
restore datafile 1;
recover datafile 1;
sql 'alter database open';
}
恢復system表空間數據文件(磁盤損壞)
run {
startup force mount;
set newname for datafile 1 to '';
restore datafile 1;
switch datafile 1;
recover datafile 1;
sql 'alter database open';
}
數據文件丟失(非system表空間)
run {
startup force mount;
sql 'alter database datafile 4 offile';
sql 'alter database open';
restore datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
}
數據文件丟失且磁盤損壞(非system表空間)
run {
startup force mount;
sql 'alter database datafile 4 offline';
sql 'alter database open';
set newname for datafile 4 to '';
restore datafile 4;
switch datafile 4;
recover datafile 4;
sql 'alter database datafile 4 online';
}
數據文件沒有備份,但archivelog全部完好
run {
startup force mount;
sql 'alter database datafile 7 offline';
sql 'alter database open';
restore datafile 7;
recover datafile 7;
sql 'alter database datafile 7 online';
}
數據文件損壞
run {
startup force mount;
sql 'alter database datafile 7 offline';
sql 'alter database open';
set newname for datafile 7 to '';
restore datafile 7;
switch datafile 7;
recover datafile 7;
sql 'alter database datafile 7 online';
}
三、恢復表空間
表空間數據文件被刪除
run {
sql 'alter tablespace users offline for recover';
restore tablespace users;
recover tablespace users;
sql 'alter tablespace users online';
}
表空間數據文件所在磁盤出現故障
run {
sql 'alter tablesapce users offline for recover';
set newname for datafile 4 to '';
restore tablespace users;
switch datafile all;
recover tablespace users;
sql 'alter tablespace users online';
}
四、數據塊介質恢復
blockrecover device type disk datafile 5 block 21,48,..;
五、不完全恢復
--基於時間的恢復
run {
startup force mount;
set until time='2010-10-30 17:00:28';
restore database;
recover database;
sql 'alter database open resetlogs';
}
--基於日誌序列號
run {
startup force mount;
set until sequence=6;
restore database;
recover database;
sql 'alter database open resetlogs';
}
--基於scn
run {
startup force mount;
set until scn=51141378;
restore database;
recover database;
sql 'alter database open resetlogs';
}
不完全恢復後需要及時做備份
run {
delete noprompt backup;
delete noprompt copy;
backup database format='';
sql 'alter system archive log current';
}
startup force mount;
set dbid=3267878421;
restore controlfile from autobackup maxseq 6;
基於備份控制文件的不完全恢復
run {
sql 'alter database mount';
set until time='2010-10-30 17:00:28';
restore database;
recover database;
sql 'alter database open resetlogs';
}