image.png

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

如果您怀疑或已知道数据库出现故障,则可使用LIST FAILURE 命令获得这些故障的信
息。可以列出所有故障或部分故障并以多种方式限制输出。故障由故障号唯一标识。请注
意,这些故障号不是连续的,因此它们之间的间隔没有任何意义。
ADVISE FAILURE 命令将显示指定故障的建议修复选项。它打印输入故障概要并隐式关
闭已修复的所有打开的故障。没有使用任何选项时,默认行为是对记录在ADR 中优先级
为CRITICAL 和HIGH 的所有故障提供建议。
REPAIR FAILURE 命令在同一RMAN 会话中的ADVISE FAILURE 命令之后使用。默
认情况下,该命令使用当前会话中上次执行ADVISE FAILURE 命令时建议的一个修复选
项。如果没有任何修复选项,REPAIR FAILURE 命令将启动隐式ADVISE FAILURE 命
令。修复完成后,该命令会关闭故障。
CHANGE FAILURE 命令将更改故障优先级或关闭一个或多个故障。仅能更改HIGH 或
LOW 故障优先级。修复故障后,将隐式关闭打开的故障。不过,您也可以显式关闭故障。

列出数据故障

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 选项将列出每个块损坏

修复建议

RMAN ADVISE FAILURE 命令显示针对指定故障建议的修复选项。ADVISE FAILURE
命令打印输入故障概要。该命令会隐式关闭已修复的所有打开的故障。
默认行为(没有使用任何选项时)是对自动诊断资料档案库(ADR) 中记录的CRITICAL
和HIGH 优先级的所有故障提供建议。如果自上次执行LIST FAILURE 命令后ADR 中
记录了新故障,则在对所有CRITICAL 和HIGH 故障提供建议前,该命令将包含一个
WARNING。
可执行两个常规修复选项:无数据丢失修复和数据丢失修复。
数据恢复指导在生成自动修复选项时会生成一个脚本,用于显示RMAN 计划如何修复故
障。如果不希望数据恢复指导自动修复故障,可从该脚本开始执行手动修复。该脚本的操
作系统(OS) 位置将显示在命令输出的末尾。您可以检查此脚本,并对其进行自定义(如
果需要),还可以手动执行该脚本(例如,您的审计线索要求建议执行手动操作时)。
语法
ADVISE FAILURE
[ ALL | CRITICAL | HIGH | LOW | failnum[,failnum,…] ]
[ EXCLUDE FAILURE failnum [,failnum,…] ]

执行修复
此命令应在同一RMAN 会话中在ADVISE FAILURE 命令之后使用。默认情况下(没有指
定任何选项时),该命令使用当前会话中上次执行ADVISE FAILURE 时建议的一个修复
选项。如果没有任何修复选项,REPAIR FAILURE 命令将启动隐式ADVISE FAILURE
命令。
使用USING ADVISE OPTION integer,可按选项编号指定所需的修复选项(从
ADVISE FAILURE 命令中);这不是故障号。
默认情况下,您需要确认是否执行该命令,因为可能需要花费许多时间完成大量更改。在
执行修复期间,该命令的输出指明正在执行的修复阶段。
修复完成后,该命令会关闭故障。
无法运行多个并发修复会话。但是,可以运行并发REPAIR … PREVIEW 会话。
• PREVIEW:不执行修复,而是显示先前生成的RMAN 脚本以及所有修复操作和注释。
• NOPROMPT:不要求确认。

分类(和关闭)故障

CHANGE FAILURE 命令用于更改故障优先级或关闭一个或多个故障。
语法
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。)
修复故障后,将隐式关闭打开的故障。不过,您也可以显式关闭故障。这需要重新评估其
它所有打开的故障,因为其中的某些故障会因该故障的关闭而变得不相关。
默认情况下,该命令要求用户确认请求的更改。