如果数据库故障为严重的(critical),那么,只能立即处理它。在处理完一个故障后,该故障将自动关闭。但是,有的故障确实很小,与你的情况关系不大。在这种情形下,可以使用RMAN的change failure命令明确关闭一个打开的故障,即使你对这种情况未采取任何措施。还可以用这条命令来更改故障的优先级。可把优先级从high(高)改为low(低),或反之。但是,不能更改优先级critical(严重),因为这样做会产生错误。
下面举一个例子说明如何用change failure命令更改故障的优先级:
如果在实际解决问题之前更改一个故障的状态为closed,则当第一次检测到该故障的检查器再次运行时,Data Recovery Advisor将用不同的ID再次建立该故障。
得到修复建议
RMAN的advise failure命令对记录在自动诊断信息库中的所有故障给出建议。默认时,此命令只列出具有critical或high优先级的那些故障。除了产生所有输入故障的摘要外,此命令还对每个故障提供一个建议修复选项。通常,advise failure命令同时给出自动和手动修复选项。
在advise failure命令输出结束时,RMAN生成一个脚本,列出建议的修复选项的细节。如果你想自己进行修复,可以直接使用这个脚本,或者对它进行修改。
仔细阅读RMAN生成的脚本可帮助你避免耗时的修复工作。此脚本也称为手动检查表(manual checklist),当你可以自己用很小的改动解决故障,而不是用RMAN进行费力的复原和恢复操来作处理问题时,此脚本很有用。例如,可以从一个测试/接收环境方便地恢复一个被删除了的引用表,不用让RMAN复原和恢复整个生产数据库。
在运行了advise failure命令后,可查询V$IR_MANUAL_CHECKLIST视图查看手动建议,如下所示:
MESSAGE列给出DRA提供的修复建议摘要。
advise failure命令可能只提供手动选项或自动修复选项。当然,你必须自己执行手动活动,而DRA可以执行建议的所有自动修复选项。在可能的情况下,DRA合并一组修复,使得能在单个修复作业中处理多个故障。
当DRA为处理故障提出一个自动修复选项时,它总是创建一个修复脚本,给出它修复故障要使用的RMAN命令。例如,一个缺失数据文件故障的自动修复脚本如下:
如果喜欢自己控制修复活动,可手动执行此修复脚本(即使提供了自动修复选项),不用让DRA自动执行它。
修复故障
当RMAN提供了它的故障修复建议后,可以选择运行repair failure命令处理和关闭特定的故障。如果advise failure命令建议了手动修复,那么在要求Data Recovery Advisor自动撤销故障之前,应该首先执行这些修复。report failure命令只能在使用了advise failure命令后执行。下面是基本的repair failure命令:
如果试图在没有执行advise failure命令时使用repair failure命令,将出现如下错误:
如果没有使用任何选项,则repair failure命令将默认使用前面运行advise failure命令时RMAN所做的单个建议。
如果不愿意让RMAN实际修复故障,而只想查看RMAN的修复措施和注释,可对repair failure命令使用preview选项,如下所示:
repair failure preview命令只预览修复过程,不实际执行修复工作。repair failure命令的结果可在V$IR_REPAIR视图中获得,如下面的查询所示:
SUMMARY列指出,所有3个故障的修复动作为NO DATA LOSS OPTION,表示故障可以用无数据丢失(no data loss)来修复。
修复丢失数据文件的问题
我们将演示一个丢失数据文件的问题,使你能理解Data Recovery Advisor如何完成它的工作。在下面的例子中,由于丢失了数据文件,因此数据库不能打开:
下面列出了在Data Recovery Advisor的帮助下处理问题所必须遵循的步骤。
(1) 启动RMAN客户机,并使用前一节介绍的数据库修复命令来解决丢失数据问题,我们从list failure命令开始:
也可以通过将特定故障的唯一标识符传递给list failure命令,指定关键字detail,来执行list failure命令的变种得到各子故障,这些子故障可能已被DRA合并在单个故障下。下面举一个例子:
这里给出的list failure命令列出合并在唯一标识符为4的故障中的各个故障。
(2) 使用advise failure命令得到关于故障的建议:
(3) 在修复问题前,使用repair failure preview命令查看RMAN打算如何修复问题:
(4) 最后,指示RMAN修复它前面发现的问题:
如果选择让Data Recovery Advisor打开数据库,如例子中所示,数据库将被自动打开,因为前一步骤中已经完成恢复。
本文出自 “bayaim_god” 博客,转载请与作者联系!