标签:
数据库全库恢复 RMAN> restore/revover database ; 例如: $ rman target / RMAN> startup mount RMAN> restore database; RMAN> recover database; RMAN> alter database open; 2. 数据库表空间恢复 RMAN> restore/revover tablespace xx ; 恢复: 如果我们只丢失了特定的表空间的数据文件,那么我们可以选择只恢复这个表空间,而不是恢复整个数据库。表空间恢复可以在不关闭数据库的情况下进行,只需要将需要恢复的表空间offline 例如: RMAN> RUN{ sql "alter tablespace xx offline immediate;" restore tablespace xx; recover tablespace xx; sql "alter tablespace xx online;" } 恢复到一个不同的位置: RMAN> RUN{ sql "alter tablespace xx offline immediate;" SET NEWNAME for datafile 1 to ‘/xx‘; restore tablespace xx; switch datafile 1; recover tablespace xx; sql "alter tablespace tbs1 online;" } 3. 数据库只读表空间的恢复 默认情况下,即使丢失了只读的数据文件,RMAN 也不会在执行完全数据库还原操作时候还原只读的数据文件。要在完全恢复期间还原只读的数据文件,就必须在RESTORE命令中使用CHECK READONLY 参数: RMAN> RESTORE DATABASE CHECK READONLY; 4. 数据文件的恢复 RMAN> restore/revover datafile 数据文件号(或数据文件名); 数据文件恢复与表空间恢复类似。假设数据文件号为 5 的文件丢失,文件名是: ‘E:/ORACLE/ORADATA/USERS.DBF‘, 那么我们恢复的时候可以指定文件号,也可以指定文件名。 例如: RMAN> run { allocate channel dev1 type disk; sql "alter tablespace users offline immediate"; restore datafile 4; --或者 restore ‘E:/ORACLE/ORADATA/USERS.DBF‘ recover datafile 4; sql "alter tablespace users online"; release channel dev1; } 恢复到一个不同的位置: $ rman target / RMAN> startup mount RMAN> RUN{ sql "alter tablespace users offline immediate"; SET NEWNAME for datafile 9 to ‘/xx/user01.dbf‘; restore datafile 9; switch datafile all; recover datafile 9; sql "alter tablespace users online"; } 5. 恢复SPFILE/控制文件 使用自动备份恢复SPFILE/控制文件 RMAN> startup nomount; RMAN> set dbid=153910023 RMAN> restore controlfile from autobackup RMAN> restore spfile/controlfile to ‘/xx/xx‘ from autobackup ; 或 RMAN> restore controlfile from ‘/arch/ct_c-2347671489-20060630-00‘; 联机状态:目标数据库MOUNT或OPEN RMAN> restore controlfile to ‘d:/temp/control01.ctl‘; 6. 归档重做日志的还原 显示恢复目录中的归档日志: RMAN> list backupset of archivelog all; 一般情况下,在 RMAN 的普通恢复过程中,不必恢复归档的重做日志。不过偶尔也需要恢复重做日志,例如我们用Log Miner 来从归档中查找一些东西。 RMAN命令举例: RMAN> RESTORE ARCHIVELOG ALL; RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1 UNTIL LOGSEQ=20; RMAN> RESTORE ARCHIVELOG FROM LOGSEQ=1; 也可以用 SET命令来指定归档日志的还原位置,例如: RMAN> run { set archivelog destination to "d:/temp"; restore archivelog all; } 需要注意的是,即使新的归档日志目录不同于默认的归档日志目录,如果 Oracle 判定日志已存在,也不会恢复该归档日志文件。 7. 还原检查与恢复测试 与备份检查一样,还原操作也可以检查是否能正常restore 或者是否该备份集 是否有效。如:: RMAN> RESTORE DATABASE VALIDATE; RMAN> VALIDATE BACKUPSET 218; RMAN> RESTORE DATABASE VALIDATE CHECK LOGICAL ; 从指定的 tag 恢复: RMAN> RESTORE FROM tag=’xxxx’; 8. 不完全恢复的还原: set until time/SCN/ RMAN> restore database until scn 1000; RMAN>restore database "to_date(‘2005/08/01 13:00:00‘,‘yyyy/mm/dd hh24:mi:ss‘)"; RMAN> restore database until sequence 100 thread 1; 例如: SQL> startup mount; RMAN> run{ allocate channel d1 type disk; restore database until scn 1317011; --或者 set until scn 1317011 recover database until scn 1317011; sql ‘alter database open resetlogs‘; release channel d1; } RMAN> run{ set until time "to_date(‘2005/08/01 13:00:00‘,‘yyyy/mm/dd hh24:mi:ss‘)"; restore database; recover database; alter database open resetlogs; } 9. 块级别的恢复 块恢复Block Media Recovery (BMR),块是恢复的最小单元,通过块可以减少恢复时间,而且数据文件可以在线。恢复块的时候,必须指定具体的块号, 例如: RMAN> blockrecover datafile 6 block 3;
标签:
原文地址:http://my.oschina.net/wupengnash/blog/419859