rman恢复手册

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';

联机状态:目标数据库MOUNTOPEN

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;

 

发布了29 篇原创文章 · 获赞 5 · 访问量 14万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章