RMAN恢复手册

数据库全库恢复
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;
时间: 2025-01-13 11:09:53

RMAN恢复手册的相关文章

RMAN恢复测试

今天做RMAN恢复的测试,做恢复测试,必须在数据库有备份的前提下进行,样例中采用的是完全备份,模拟以下几种情况下的恢复: 1)数据库运行过程中数据文件全部丢失: 2)数据库运行过程中非关键数据文件丢失: 3)数据库运行过程中关键数据文件丢失: 4)联机重做日志文件/归档重做日志文件丢失(未测试): 5)增量备份下归档日志文件丢失(未测试): 在每个模拟中,都要做一次完全备份,上一个的完全备份可以给下一个模拟使用. 一.测试环境描述 系统版本:Red Hat Enterprise Linux Se

Oracle 11g单实例RMAN恢复到Oracle 11g RAC

一.环境说明 操作系统版本: RHEL 6.5 x64 1. 源数据库服务器 Oracle版本: Oracle 11g 11.2.0.4 64位(单机)Oracle_SID: orcl db_name   : orcl 背景:一台生产oracle10g(10.2.0.5)数据库计划迁移到Oracle 11.2.0.4.0 RAC.1) 先oracle10g(10.2.0.5)升级到Oracle 11.2.0.4(过程略)2)再Oracle 11.2.0.4单实例迁移到Oracle 11.2.0.

RAC 之 RMAN 恢复

RAC 下的RMAN 讲究的是备份和还原的策略要一致.备份策略的不同,会导致备份结果的分步不同,进而影响恢复的策略和步骤.一般情况下,恢复策略和备份策略必须是对应的.如果备份策略进行了修改,那么恢复也应该采用相同的策略.之前我们的RMAN 备份参考: RAC 之 RMAN 备份 http://blog.csdn.net/tianlesoftware/archive/2010/09/22/5901053.aspx 这里面有2个注意事项: 1.       执行恢复的节点要能看到所有节点的归档文件.

RAC之RMAN恢复

之前整理的RMAN 有关还原的文章: RMAN 系列(五) ---- RMAN 还原 与 恢复 http://blog.csdn.net/tianlesoftware/archive/2010/07/11/5700474.aspx RMAN 备份与恢复 实例 http://blog.csdn.net/tianlesoftware/archive/2009/10/20/4699320.aspx Oracle Rman跨resetlogs版本恢复 http://blog.csdn.net/tianl

RMAN恢复报错: ORA-01103: database name 'POWERDES' in control file is not 'PDUNQ'

执行rman恢复的时候报错 RMAN> alter database mount; RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: ====================================================

ORACLE中没有参数文件和控制文件如何通过rman恢复数据库

场景: 一个DEV告诉我生产环境下某个用户的表都看不到了,需要恢复,而此时生产库上存储自动备份的参数文件控制文件的磁盘目录文件坏块,所以导致rman备份的只有数据文件和归档日志文件,这种情况下,如何在测试服务器上利用rman恢复数据呢?google了很多资料,咨询了朋友,恢复过程如下: 前期准备工作:事先查询好先查询下原来的数据文件路径SQL> select name from v$datafile; NAME-------------------------------------------

RMAN恢复案例之--不完全恢复错误案例

RMAN恢复案例之--不完全恢复错误案例 RMAN恢复案例: 不完全恢复,由于在先前的数据文件备份有误,导致恢复失败. [[email protected] ~]$ rman target / Recovery Manager: Release 11.2.0.1.0 - Production on Sat Sep 20 15:54:25 2014 Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserve

[网络课摘抄]8.4 rman恢复误删除的一张表(不完全恢复)

恢复误删除的一张表可以使用很多方法,如日志挖掘.闪回等,rman恢复(不完全恢复)肯定不是最好的,也不建议用, 现在我们只是演示一下这种恢复. 1 RMAN备份数据库 2创建测试表 3查看此时的SCN并删除表 4恢复数据测试表 5验证测试表是否恢复过来

[转]使用RMAN恢复目录

? 对恢复目录和RMAN 资料档案库控制文件的使用进行比较 ? 创建和配置恢复目录 ? 在恢复目录中注册数据库 ? 同步恢复目录 ? 使用RMAN 存储脚本 ? 备份恢复目录 ? 创建虚拟专用目录 RMAN 资料档案库数据存储:比较选项 控制文件: ? 管理更简单 ? 默认设置 恢复目录: ? 复制控制文件数据 ? 存储更长的备份历史记录 ? 服务于多个目标 ? 存储RMAN 脚本 RMAN 资料档案库数据始终存储在目标数据库的控制文件中.此外,它也可以存储在一个名为"恢复目录"的单独