使用 Data Recovery Advisor

本教程向您介绍如何使用 Data Recovery Advisor 诊断和修复数据故障。您可以演练几个情景(见下文)。

大约 60 分钟

本教程包括下列主题:

用 Enterprise Manager 修复“故障”数据库
用 Enterprise Manager 修复块损坏
用 RMAN 命令行修复“故障”数据库

将光标置于此图标上可以加载和查看本教程的所有屏幕截图。 (警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图将其隐藏。

概述

Data Recovery Advisor 是什么?

Data Recovery Advisor 是帮助诊断和修复数据故障和损坏的工具。Data Recovery Advisor 根据症状分析故障并智能地确定最佳修复策略。该工具还可自动修复诊断的故障。

返回主题列表

情景

1. 用 Enterprise Manager 修复“故障”数据库

第一个情景假设您的数据库“出现故障”。在生产环境中,该情况非常严重,必须尽快解决才能“生存”。您尝试重新打开数据库,但失败了。然后使用 Enterprise Manager (EM) DB 控制的 Data Recovery Advisor 诊断故障。诊断显示两个数据文件不可访问。对于第一个数据文件问题,使用手动修复选项(重命名数据文件)。此问题可能是由于 DBA 执行了 ALTER DATABASE ...RENAME FILE ... 命令并且系统管理员忽略了正确重命名操作系统的数据文件而导致的。

通过重命名文件修复第一个数据问题后,再次从 Data Recovery Advisor 请求修复建议。对于第二个数据文件问题,使用自动修复选项恢复丢失的数据文件。最后,检查数据库再次启动并正在运行。

2. 用 Enterprise Manager 修复块损坏

在该情景中,您遇到几个损坏的块。您利用 Data Recovery Advisor 选择块媒介恢复作为最佳恢复策略(而非完整的数据库或数据文件恢复)。

3. 用 RMAN 命令行修复“故障”数据库

此情景与第一个相同,但您使用 RMAN 命令完成诊断和修复故障的步骤。

返回主题列表

开始本教程之前,您应该:

1.

在一个终端窗口中,导航到您的工作目录并执行以下命令:

./dra_setup.sh 

2. 注意,您一次将处理一种情景,但不必按顺序选择它们。每个情景都有自己导致故障的其他设置,要修复这些故障,必须完成其余步骤。

返回主题列表

用 Enterprise Manager 修复“故障”数据库

要诊断和修复“故障”数据库,执行以下步骤:

1.

要设置一个数据故障并关闭数据库,使用终端窗口导航到您的工作目录并执行以下命令:

./dra1_setup.sh

检测到 users01.dbf 数据文件被删除,example01.dbf 文件被重命名。您将使用手动修复和自动修复选项来诊断和修复这些故障。

2.

输入以下 URL 登录到 Enterprise Manager Database Control(将 <hostname> 更改为 localhost 或指定的主机名)。

https://<hostname>:1158/em

3.

如情景 1 中所描述的,您遇到一个“故障”数据库。您的任务是尽快诊断和修复此故障。单击 Startup

4.

输入以下详细信息,然后单击 OK

Host Credentials
Username:oracle
Password:<您的口令>

Database Credentials
Username:sys
Password:<您的口令>
Connect as:SYSDBA

5.

单击 Startup/Shutdown Confirmation 页面中的 Yes

6.

查看进度页面。

7.

注意,数据库目前处于挂载状态。单击 View Details 获取详细信息。

8.

查看数据库更改状态详细信息和错误消息,单击 OK

9.

单击 Perform Recovery 诊断故障并执行修复。

10.

在 Database Login 页面中输入以下详细信息,然后单击 Login

Database Credentials
Username:sys
Password:<您的口令>
Connect as:SYSDBA

11.

输入以下详细信息,然后单击 Continue

Username:oracle
Password:<您的口令>

12.

向下滚动至页面底部,确保以下凭证可用。向上滚动到该页面顶部,然后单击 Advise and Recover

Username:oracle
Password:<您的口令>

13.

当数据库打不开时,Data Recovery Advisor 自动诊断了问题。查看此诊断的结果。单击 Failure Description 下的 + 图标查看更多详细信息。

14.

要查看建议的修复策略,保留选定所有故障,然后单击 Advise

15.

Manual Actions 页面显示,Data Recovery Advisor 在该页面提示您考虑手动修复。不要选择 Continue。 执行下一步。

16.

该演示假设 example01.dbf 数据文件错误地进行了重命名。在一个终端窗口中,输入以下命令手动修复该故障:

a) 要导航到包含您的数据文件的目录,输入:cd $ORACLE_BASE/oradata/orcl

b) 要查看该目录的内容,输入:ls

c) 要重命名错误的 example01 数据文件,输入:mv example01.dbf.old example01.dbf

d) 要查看纠正的文件名,输入:ls

e) 要从终端窗口退出,输入:exit

17.

返回 Enterprise Manager 的 Manual Actions 页面。单击 Re-assess Failures

18.

Data Recovery Advisor 重新验证所有故障并关闭您手动修复的故障。单击 Failure Description 下的“+”图标展开此节点,查看其他任何未处理的故障。

19.

注意,手动修复的故障关闭,但仍有另一个打开的故障。单击 Advise

20.

单击 Continue with Advise

21.

Data Recovery Advisor 生成一个 RMAN 修复脚本。单击 Continue

22.

在 Review 页面中,检查故障以及将解决此故障的修复脚本。单击 Execute Recovery

23.

等待修复执行完成。当 Data Recovery Advisor 完成后,将显示 Repair Results 页面。查看所有修复结果。单击垂直滚动条。

24.

单击垂直滚动条并拖动其直到末尾。注意,成功修复后,需要打开数据库。单击 Open Database

25.

Enterprise Manager 确认数据库已打开。单击 OK

26.

Enterprise Manager 显示 Login 页面。输入以下详细信息,然后单击 Login

User Name:sys
Password:<您的口令>
Connect as:SYSDBA

27.

在 Database Instance 主页上,确认数据库实例打开并运行。(如果没有立即出现与此类似的页面,请等待数分钟后刷新该页面)。

单击 Logout。您通过执行手动和自动修复完成了故障数据库的修复。

返回主题列表

要诊断和修复块损坏,执行以下步骤:

1.

要在 example01.dbf 数据文件中设置块损坏,使用终端窗口导航到您的工作目录并执行以下命令:

./dra2_setup.sh

对应用程序用户来说,块损坏错误通常以这种形式出现。DBA 可在 Enterprise Manager DB Control 的 Home 页面看到同一错误(参见以下若干步骤)。然而,由于错误恢复和显示错误的 Enterprise Manager 间的内部处理,有一点延迟。

2.

输入以下 URL 登录 Enterprise Manager Database Control(将 <hostname> 更改为本地主机或指定的主机名)。

https://<主机名>:1158/em

3.

要登录 Enterprise Manager,输入以下详细信息,然后单击 Login

User Name:sys
Password:<您的口令>
Connect as:SYSDBA

4.

单击 Availability 选项卡。

5.

单击 Perform Recovery

6.

在 Perform Recovery 页面上,您会看到 Data Recovery Advisor 检测出损坏的块。确保在该页面底部的 credentials 部分输入 Oracle OS 用户名和口令,然后单击 Advise and Recover

7.

单击 Failure Description 下的 + 图标,展开节点以查看更多详细信息。

8.

查看块损坏的详细信息。保持默认选定的所有故障并单击 Advise

9.

查看修复脚本并单击 Continue

10.

在 Review 页面上,可以查看故障和推荐的修复。单击 Submit Recovery Job

11.

您会收到作业成功创建的确认。单击 View Results

12.

确认您的作业成功执行,单击页面右上方的 Database 选项卡。

13.

查看 Database Instance 主页上的块损坏警报。DBA 定期监视该页面,因此他们将能够看到块损坏警报(将稍微延后出现)。

14.

要确认块毁坏得到了修复,执行以下命令:

sqlplus / as sysdba
select * from hr.regions;

返回主题列表

要诊断和修复“故障”数据库,执行以下步骤:

1.

要设置一个数据故障并关闭数据库,使用终端窗口导航到您的工作目录并执行以下命令:

./dra1_setup.sh

检测到 users01.dbf 数据文件被删除,example01.dbf 文件被重命名。您将使用手动修复和自动修复选项来诊断和修复这些故障。

看到以下行时,您知道设置已完成:


2.

由于您发现自己的数据库处于“故障”状态,尝试用以下命令启动它:

sqlplus / as sysdba
startup

注意,该数据库被挂载并有一个数据文件错误。

3.

用以下命令退出 SQL*Plus 并启动 RMAN:

exit
rman target / nocatalog


4.

执行以下命令,列出故障和故障详细信息:

LIST FAILURE;
LIST FAILURE DETAIL;

您可以输入大写或小写命令。


5.

输入以下命令诊断故障:

ADVISE FAILURE;

下一步后您将返回该窗口。

6.

该演示假设 example01.dbf 数据文件错误地进行了重命名。打开另一个终端窗口,输入以下命令手动修复故障。

a) 要导航到包含您的数据文件的目录,输入:cd $ORACLE_BASE/oradata/orcl

b) 要查看该目录的内容,输入:ls

c) 要重命名错误的 example01 数据文件,输入:mv example01.dbf.old example01.dbf

d) 要查看纠正的文件名,输入:ls

e) 要从终端窗口退出,输入:exit

7.

切换到 RMAN 窗口,然后输入以下命令来查看手动修复结果:

ADVISE FAILURE;

8.

输入以下命令查看修复脚本:

REPAIR FAILURE PREVIEW;


9.

输入以下命令初始化自动修复,重新启动数据库并退出 RMAN:

REPAIR FAILURE;

. . . Do you really want to execute the above repair (enter YES or NO)? YES

. . . Do you want to open the database (enter YES or NO)?YES

exit

部分输出可能如下所示:



10.

在 SQL*Plus 中输入以下命令,测试数据库启动并运行:

sqlplus / as sysdba
select open_mode from v$database;
exit

返回主题列表

完成此 OBE 后或您希望从前提条件再次开始这一过程时,执行以下命令:

1.

在终端窗口中输入以下命令:

./dra_cleanup.sh

下面是部分输出:

注:还应删除本 OBE 开始时创建的备份集。您可以使用 RMAN 的 LIST BACKUP 命令和 DELETE...TARGET <target id> 命令。

返回主题列表

在本教程中,您学习了如何:

用 Enterprise Manager 修复“故障”数据库
用 Enterprise Manager 修复块损坏
用 RMAN 命令行修复“故障”数据库

返回主题列表

将光标置于该图标上可以隐藏所有的屏幕截图。