1.1 DRA 说明
DRA在遇到错误时会自动收集数据故障信息。此外,它还能预先检查故障。在此模式中,它可以在数据库进程发现损坏并发送错误消息之前检测和分析数据故障(请注意,修复始终在人为控制之下进行)。
数据故障可能非常严重。例如,如果缺少最新的日志文件,则无法启动数据库。一些数据故障(如数据文件中的块损坏)不是灾难性故障,因为它们不会使数据库停机,也不会阻止您启动Oracle 实例。数据恢复指导可处理以下两种情况:一种情况是您无法启动数据库(因为缺少一些必需的数据库文件,或者这些数据库文件不一致或已损坏),另一种情况是运行时发现文件损坏。
解决严重数据故障的首选方法是首先将故障转移至备用数据库(前提是在Data Guard 配置下),这样用户就可以尽快恢复联机。然后,需要修复数据故障的主要原因,但幸运的是,此操作不会影响用户。
1.2 自动诊断工作流
Oracle Database11g 中的自动诊断工作流可为您执行工作流步骤。使用数据恢复指导,您只需启动建议和修复。
1. 健康状况监视器会自动执行检查,并将故障及其故障现象作为“查找结果”记录到自动诊断资料档案库(ADR) 中。
2. 数据恢复指导将查找结果与故障合并在一起。它列出了先前执行的评估结果,其中包含故障严重程度(严重或高)。
3. 如果您要求系统提供有关故障的修复建议,数据恢复指导会将故障映射到自动和手动修复选项,检查基本可行性,并为您提供修复建议。
4. 可以选择手动执行修复或者请求数据恢复指导为您执行此操作。
5. 除了健康状况监视器和数据恢复指导自动执行的主要“被动”检查之外,Oracle 还建议使用VALIDATE 命令进行“预防性”检查。
1.3 RMAN中使用DRA 步骤
Oracle的OEM已经很智能,这些操作在OEM上都可以进行,我们这里只看使用RMAN 命令来实现的步骤。
如果怀疑或已知道数据库出现故障,则可使用LIST FAILURE 命令获得关于这些故障的信息。可以列出所有故障或部分故障并以多种方式限制输出。故障由故障号进行唯一标识。请注意,这些故障号不是连续的,因此它们之间的间隔没有任何意义。
ADVISE FAILURE 命令将显示为指定故障建议的修复选项。它可打印输入故障概要并隐式关闭已修复的所有打开的故障。没有使用任何选项时,默认行为是对记录在ADR 中优先级为CRITICAL 和HIGH的所有故障提供建议。
在同一RMAN 会话中REPAIR FAILURE 命令在ADVISE FAILURE 命令后使用。默认情况下,该命令使用当前会话中上次执行ADVISEFAILURE 命令时建议的一个修复选项。如果没有任何修复选项,REPAIR FAILURE 命令将启动隐式ADVISE FAILURE 命令。修复完成后,该命令会关闭故障。
CHANGE FAILURE 命令将更改故障优先级或关闭一个或多个故障。仅可以更改HIGH 或LOW 故障优先级。修复故障后,将隐式关闭打开的故障。但是,也可以显式关闭故障。
1.3.1 列出数据故障
RMAN LISTFAILURE 命令可列出故障。如果目标实例使用恢复目录,它可以处于STARTED 模式下,否则必须处于MOUNTED 模式下。LIST FAILURE 命令不启动诊断新故障检查;它将列出先前执行的评估结果。重复执行LIST FAILURE 命令将重新验证所有现有的故障。
如果数据库诊断出新的故障(在命令执行之间),则会显示这些新故障。
如果用户手动修复故障或临时故障消失,则数据恢复指导会将这些故障从LIST FAILURE 输出中删除。
以下是语法说明:
(1) failnum:为其显示修复选项的故障数。
(2) ALL:列出所有优先级的故障。
(3) CRITICAL:列出优先级为CRITICAL 且处于OPEN 状态的故障。这些故障使整个数据库不可用(如控制文件缺失),因此需要立即引起注意。
(4) HIGH:列出优先级为HIGH 且处于OPEN状态的故障。这些故障使数据库部分不可用或不可恢复,因此应尽快修复(如归档重做日志缺失)。
(5) LOW:列出优先级为LOW 且处于OPEN状态的故障。低优先级的故障可以等到修复了更重要的故障后再进行修复。
(6) CLOSED:仅列出关闭的故障。
(7) EXCLUDE FAILURE:从列表中排除指定的故障号。
(8) DETAIL:通过展开合并的故障列出故障。例如,如果一个文件中有多个块损坏,则DETAIL选项将列出每个块损坏。
如:
RMAN> LIST FAILURE;
RMAN> LIST FAILURE DETAIL;
1.3.2 修复建议
RMAN ADVISE FAILURE 命令可显示指定故障的建议修复选项。如果从Enterprise Manager 中执行此命令,则Data Guard 将显示一个修复选项(但是,如果直接从RMAN 命令行执行此命令,则Data Guard 不会显示修复选项)。ADVISE FAILURE 命令可打印输入故障概要。该命令会隐式关闭已修复的所有打开的故障。
没有使用任何选项时,默认行为是对记录在自动诊断资料档案库(ADR) 中优先级为CRITICAL 和HIGH 的所有故障提供建议。如果自上次执行LIST FAILURE 命令后ADR 中记录了新故障,则在对所有CRITICAL 和HIGH 故障提供建议前,该命令将包含一个WARNING。
执行两个常规修复选项:无数据丢失修复和数据丢失修复。
DRA在生成自动修复选项时会生成一个脚本,用于显示RMAN 计划如何修复故障。如果不希望数据恢复指导自动修复故障,可从该脚本开始执行手动修复。该脚本的操作系统(OS) 位置将显示在命令输出的末尾。可以检查此脚本,并对其进行自定义(如果需要),还可以手动执行该脚本(例如在审计线索要求建议执行手动操作时)。
RMANADVISE FAILURE 命令有以下用途:
(1) 显示输入故障列表概要
(2) 包括警告(如果ADR 中出现新故障)
(3) 显示手动核对清单
(4) 列出一个建议的修复选项
(5) 生成修复脚本(用于自动或手动修复)
. . .
Repair script:
/u01/app/oracle/diag/rdbms/orcl/orcl/hm/reco_2979128860.hm
RMAN>
语法:
ADVISE FAILURE
[ ALL | CRITICAL | HIGH | LOW |failnum[,failnum,…] ]
[ EXCLUDE FAILURE failnum [,failnum,…] ]
1.3.3 执行修复