Oracle 数据恢复指导具体解释

1.数据恢复指导 :

高速检測、分析和修复故障

最大程度地降低停机故障和执行时故障

将对用户的干扰降到最低

用户界面:
   --EM GUI 界面 (多个路径)
   --RMAN 命令行


支持的数据库配置:

   --单实例

   --非 RAC

   --支持故障转移到备用数据库,但不支持分析和修复备用数据库


数据恢复指导的功能:
在错误发生时,数据恢复指导可自己主动收集数据故障信息。此外,它还能够主动检查故障。在这样的模式下,它有可能在数据库进程发现损坏并指出错误之前就检測和分析数据故障(请注意,修复始终由人控制)。 


数据故障可能会非常严重。比如,假设缺少最新的日志文件,则无法启动数据库。一些数据故障(如数据文件里的块损坏)不是灾难性故障,由于它们不会使数据库停机,也不会阻止您启动 Oracle 实例。

数据恢复指导能够处理两种情况:一种情况是您无法启动数据库(由于缺少一些必需的数据库文件,或者这些数据库文件不一致或已损坏),还有一种情况是执行时发现文件损坏。

2.数据恢复指导:RMAN 命令行界面

RMAN 命令  操作
LIST FAILURE  列出先前运行的故障评估
ADVISE FAILURE  显示建议的修复选项
REPAIR FAILURE  修复和关闭故障(在同一 RMAN 会话中的 ADVISE 命令后)
CHANGE FAILURE  更改或关闭一个或多个故障

3.列出数据故障

RMAN LIST FAILURE 命令可列出先前运行的故障评估。
--包含新诊断的故障

--删除关闭的故障(默认情况下)

LIST FAILURE

[ ALL | CRITICAL | HIGH | LOW | CLOSED | failnum[,failnum,…] ]

[ EXCLUDE FAILURE failnum[,failnum,…] ][ DETAIL ] 

RMAN> LIST FAILURE;
 

List of Database Failures

=========================
 

Failure ID Priority Status    Time Detected Summary

---------- -------- --------- ------------- -------

142        HIGH     OPEN      21-JUN-07     One or more non-system
                                           
                                            datafiles are missing
 

RMAN LIST FAILURE 命令可列出故障。假设目标实例使用恢复文件夹,它能够处于 STARTED 模式下,否则必须处于 MOUNTED 模式下。
LIST FAILURE 命令可列出曾经运行的评估的结果。反复运行 LIST FAILURE 命令可又一次验证全部现有的故障。假设数据库诊断出新的故障(在命令运行之间),则会显示这些新故障。假设用户手动修复故障或暂时故障消失,则数据恢复指导会将这些故障从 LIST FAILURE 输出中删除。


了解有关语法的很多其它内容:

failnum:显示了修复选项的故障数。

ALL:列出全部优先级的故障。

CRITICAL:列出 CRITICAL 优先级和 OPEN 状态的故障。须要马上关注这些故障,由于它们会使整个数据库不可用。

HIGH:列出 HIGH 优先级和 OPEN 状态的故障。这些故障(如归档重做日志缺失)使数据库部分不可用或不可恢复,因此应尽快修复。

LOW:列出 LOW 优先级和 OPEN 状态的故障。低优先级的故障能够等到修复了更重要的故障后再进行修复。

CLOSED:仅列出关闭的故障。
EXCLUDE FAILURE:从列表中排除指定的故障号。

DETAIL:展开合并的故障,列出故障具体资料。比如,假设一个文件里有多个块损坏,则 DETAIL 选项将列出每一个块损坏。

4.修复建议

RMAN ADVISE FAILURE 命令:
--语法:
ADVISE FAILURE 

[ ALL | CRITICAL | HIGH | LOW | failnum[,failnum,…] ]

[ EXCLUDE FAILURE failnum [,failnum,…] ]
--显示输入故障列表的摘要(含警告)

--显示手动检查列表

--生成修复脚本(用于自己主动或手动修复)
. . .

Repair script: /u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2979128860.hm

RMAN>

RMAN ADVISE FAILURE 命令可显示针对指定故障建议的修复选项。ADVISE FAILURE 命令可打印输入故障概要。该命令会隐式关闭已修复的全部打开的故障。

默认行为(没有使用不论什么选项时)是对记录在自己主动诊断资料档案库中优先级为 CRITICAL 和 HIGH 的全部故障提供建议。假设自上次运行 LIST FAILURE 命令后 ADR 中记录了新故障,则在对全部 CRITICAL 和 HIGH 故障提供建议前,该命令将包括一个 WARNING。

可运行两个常规修复选项:无数据丢失修复和数据丢失修复。
数据恢复指导在生成自己主动修复选项时会生成一个脚本,用于显示 RMAN 计划怎样修复故障。假设不希望数据恢复指导自己主动修复故障,可从该脚本開始运行手动修复。该脚本的 OS 位置将显示在命令输出的末尾。能够检查此脚本,并对其进行自己定义(假设须要),还能够手动运行该脚本(比如在审计线索要求建议运行手动操作时)。


5.运行修复

RMAN REPAIR FAILURE 命令:
--在 ADVISE FAILURE 命令之后运行

--修复指定故障

--关闭修复的故障

--语法:
REPAIR FAILURE
 
[PREVIEW]
 
[NOPROMPT]

eg:RMAN> repair failure;

此命令应在同一 RMAN 会话中的 ADVISE FAILURE 命令之后使用。默认情况下(没有指定不论什么选项时),该命令使用当前会话中上次运行 ADVISE FAILURE 时建议的一个修复选项。假设没有不论什么修复选项,REPAIR FAILURE 命令将启动隐式 ADVISE FAILURE 命令。 

默认情况下,您须要确认是否运行该命令,由于可能须要花费时间完毕大量更改。在运行修复期间,该命令的输出表明正在运行的修复阶段。
修复完毕后,该命令会关闭故障。

无法执行多个并发修复会话。可是,能够执行并发 REPAIR … PREVIEW 会话。 


PREVIEW:不运行修复,而是显示先前生成的包括全部修复操作和凝视的 RMAN 脚本。
NOPROMPT:不要求确认。

6.分类(和关闭)故障
RMAN CHANGE FAILURE 命令:
--更改故障优先级(CRITICAL 除外)

--关闭一个或多个故障  

RMAN> change failure 5 priority low;

List of Database Failures

=========================

Failure ID Priority Status    Time Detected Summary

---------- -------- --------- ------------- -------

5          HIGH     OPEN      20-DEC-06     one or more datafiles are missing


Do you really want to change the above failures (enter YES or NO)? yes
changed 1 failures to LOW priority


此命令用于更改故障优先级或关闭一个或多个故障。 

语法:
CHANGE FAILURE

{ ALL | CRITICAL | HIGH | LOW | failnum[,failnum,…] }

[ EXCLUDE FAILURE failnum[,failnum,…] ]

{ PRIORITY {CRITICAL | HIGH | LOW} | 
CLOSE } -- 将故障的状态更改为关闭 

[ NOPROMPT ] -- 不要求用户确认 


仅仅能将故障优先级从 HIGH 更改为 LOW,以及从 LOW 更改为 HIGH。更改 CRITICAL 优先级会出现错误。(将故障的优先级从 HIGH 更改为 LOW 的一个原因是避免该故障显示在 LIST FAILURE 命令的默认输出列表中。比如,假设损坏的块具有 HIGH 优先级,且该块位于非常少使用的表空间中时,您可能希望将其暂时更改为 LOW。)

修复故障后,将隐式关闭打开的故障。可是,也能够显式关闭故障。这须要又一次评估其他全部打开的故障,由于当中的某些故障会因关闭此故障而变得不相关。

默认情况下,该命令要求用户确认请求的更改。

7.数据恢复指导视图
查询动态数据字典视图:
V$IR_FAILURE:列出全部故障,当中包含已关闭的故障(LIST FAILURE 命令的结果)
V$IR_MANUAL_CHECKLIST:列出手动建议(ADVISE FAILURE 命令的结果)
V$IR_REPAIR:列出修复(ADVISE FAILURE 命令的结果) 
V$IR_FAILURE_SET:交叉引用故障和建议标识符

使用演示样例:假定您须要显示在 2007 年 6 月 21 日检測到的全部故障。
SELECT * FROM v$ir_failure
WHERE trunc (time_detected) = '21-JUN-2007';

(依据页面调整输出格式)
 
FAILURE_ID  PARENT_ID CHILD_COUNT CLASS_NAME              TIME_DETE MODIFIED    DESCRIPTION    IMPACTS           PRIORITY STATUS
142          0           0 PERSISTENT_DATA      21-JUN-07 21-JUN-07 One or more non-system datafiles are missing See impact for individual child failures     HIGH     CLOSED
145        142           0 PERSISTENT_DATA               21-JUN-07 21-JUN-07 Datafile 4: '/u01/app/oracle/oradata/orcl/users01.dbf' is missing
Some objects in tablespace USERS might be unavailable    HIGH     CLOSED
       151        142           0 PERSISTENT_DATA        21-JUN-07 21-JUN-07 Datafile 5: '/u01/app/oracle/oradata/orcl/example01.dbf' is missing
Some objects in tablespace EXAMPLE might be unavailable  HIGH     CLOSED

原文地址:https://www.cnblogs.com/mfrbuaa/p/4078281.html