您的位置:首页 > 数据库 > Oracle

rman恢复手册

2013-12-13 10:19 302 查看
1.数据库全库恢复
RMAN>restore/revover database ;
例如:
$ rman target /
RMAN> startupmount
RMAN> restoredatabase;
RMAN> recoverdatabase;
RMAN> alterdatabase open;
2.数据库表空间恢复
RMAN>restore/revover tablespace xx ;
恢复:
如果我们只丢失了特定的表空间的数据文件,那么我们可以选择只恢复这个表空间,而不是恢复整个数据库。表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的表空间offline
例如:
RMAN> RUN{
sql "altertablespace xx offline immediate;"
restoretablespace xx;
recovertablespace xx;
sql "altertablespace xx online;"
}
恢复到一个不同的位置:
RMAN> RUN{
sql "altertablespace xx offline immediate;"
SET NEWNAME fordatafile 1 to '/xx';
restoretablespace xx;
switch datafile1;
recovertablespace xx;
sql "altertablespace tbs1 online;"
}
3.数据库只读表空间的恢复
默认情况下,即使丢失了只读的数据文件,RMAN
也不会在执行完全数据库还原操作时候还原只读的数据文件。要在完全恢复期间还原只读的数据文件,就必须在RESTORE命令中使用CHECK READONLY
参数:
RMAN> RESTOREDATABASE CHECK READONLY;
4.数据文件的恢复
RMAN>restore/revover datafile
数据文件号(或数据文件名);
数据文件恢复与表空间恢复类似。假设数据文件号为 5
的文件丢失,文件名是:
'E:/ORACLE/ORADATA/USERS.DBF',那么我们恢复的时候可以指定文件号,也可以指定文件名。
例如:
RMAN> run {
allocate channeldev1 type disk;
sql "altertablespace users offline immediate";
restore datafile4; --或者 restore 'E:/ORACLE/ORADATA/USERS.DBF'
recover datafile4;
sql "altertablespace users online";
release channeldev1;
}
恢复到一个不同的位置:
$ rman target /
RMAN> startupmount
RMAN> RUN{
sql "altertablespace users offline immediate";
SET NEWNAME fordatafile 9 to '/xx/user01.dbf';
restore datafile9;
switch datafileall;
recover datafile9;
sql "altertablespace users online";
}
5.恢复SPFILE/控制文件
使用自动备份恢复SPFILE/控制文件
RMAN> startupnomount;
RMAN> setdbid=153910023
RMAN> restorecontrolfile from autobackup
RMAN> restorespfile/controlfile to '/xx/xx' from autobackup ;

RMAN> restorecontrolfile from '/arch/ct_c-2347671489-20060630-00';
联机状态:目标数据库MOUNT或OPEN
RMAN> restorecontrolfile to 'd:/temp/control01.ctl';
6.归档重做日志的还原
显示恢复目录中的归档日志:
RMAN> listbackupset of archivelog all;
一般情况下,在 RMAN
的普通恢复过程中,不必恢复归档的重做日志。不过偶尔也需要恢复重做日志,例如我们用Log Miner
来从归档中查找一些东西。
RMAN命令举例:
RMAN> RESTOREARCHIVELOG ALL;
RMAN> RESTOREARCHIVELOG FROM LOGSEQ=1 UNTIL LOGSEQ=20;
RMAN> RESTOREARCHIVELOG FROM LOGSEQ=1;
也可以用 SET命令来指定归档日志的还原位置,例如:
RMAN> run
{
set archivelogdestination to "d:/temp";
restorearchivelog all;
}
需要注意的是,即使新的归档日志目录不同于默认的归档日志目录,如果 Oracle
判定日志已存在,也不会恢复该归档日志文件。
7.还原检查与恢复测试
与备份检查一样,还原操作也可以检查是否能正常restore
或者是否该备份集
是否有效。如::
RMAN> RESTOREDATABASE VALIDATE;
RMAN>VALIDATE BACKUPSET 218;
RMAN> RESTOREDATABASE VALIDATE CHECK LOGICAL ;
从指定的 tag
恢复:
RMAN> RESTOREFROM tag=’xxxx’;
8.不完全恢复的还原:
set untiltime/SCN/
RMAN> restoredatabase until scn 1000;
RMAN>restoredatabase "to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";
RMAN> restoredatabase until sequence 100 thread 1;
例如:
SQL> startupmount;
RMAN> run{
allocate channeld1 type disk;
restore databaseuntil scn 1317011; --或者 set until scn 1317011
recover databaseuntil scn 1317011;
sql 'alterdatabase open resetlogs';
release channeld1;
}
RMAN> run{
set until time"to_date('2005/08/01 13:00:00','yyyy/mm/dd hh24:mi:ss')";
restoredatabase;
recoverdatabase;
alter databaseopen resetlogs;
}
9.块级别的恢复
块恢复Block Media Recovery (BMR),块是恢复的最小单元,通过块可以减少恢复时间,而且数据文件可以在线。恢复块的时候,必须指定具体的块号,
例如:
RMAN> blockrecoverdatafile 6 block 3;
 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  rman 恢复 Oracle