本教程向您介绍如何使用 Data Recovery Advisor 诊断和修复数据故障。您可以演练几个情景(见下文)。
大约 60 分钟
本教程包括下列主题:
| 概述 | |
| 情景 | |
| 前提条件 | |
| 用企业管理器修复“死掉的”数据库 | |
| 用企业管理器修复块损坏 | |
| 用 RMAN 命令行修复“死掉的”数据库 | |
将鼠标置于此图标上可以加载和查看本教程的所有屏幕截图。
(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。
什么是 Data Recovery Advisor?
Data Recovery Advisor 是帮助诊断和修复数据故障和损坏的工具。Data Recovery Advisor 根据症状分析故障并智能地确定最佳修复策略。该工具还可自动修复诊断的故障。
1. 用企业管理器修复“死掉的”数据库
第一个情景假设您的数据库“死掉了”。在生产环境中,该情况非常严重,必须尽快解决才能“生存”。您尝试重新打开数据库,但失败了。然后使用企业管理器 (EM) DB 控制的 Data Recovery Advisor 诊断故障。诊断显示两个数据文件不可访问。对于第一个数据文件问题,使用手动修复选项(重命名数据文件)。此问题可能是由于 DBA 执行了 ALTER DATABASE ...RENAME FILE ... 命令并且系统管理员忽略了正确重命名操作系统的数据文件而导致的。
通过重命名文件修复第一个数据问题后,再次从 Data Recovery Advisor 请求修复建议。对于第二个数据文件问题,使用自动修复选项恢复丢失的数据文件。最后,检查数据库再次启动并正在运行。
2. 用企业管理器修复块损坏
在该情景中,您遇到几个损坏的块。您利用 Data Recovery Advisor 选择块媒介恢复作为最佳恢复策略(而非完整的数据库或数据文件恢复)。
3. 用 RMAN 命令行修复“死掉的”数据库
此情景与第一个相同,但您使用 RMAN 命令完成诊断和修复故障的步骤。
开始本教程之前,您应该:
| 1. | 通过完成教程在 Linux 上安装 Oracle 数据库 11g 安装数据库。 |
|
| 2. | 将 dra.zip 文件下载并解压缩到您的工作目录中。 |
|
| 3. | 在一个终端窗口中,导航到您的工作目录并执行以下命令: ./dra_setup.sh
|
|
| 4. | 注意,您一次将处理一种情景,但不必按顺序选择它们。每个情景都有自己导致故障的其他设置,要修复这些故障,必须完成其余步骤。 | |
要诊断和修复“死掉的”数据库,执行以下步骤:
| 1. | 要设置一个数据故障并关闭数据库,使用终端窗口导航到您的工作目录并执行以下命令: ./dra1_setup.sh
检测到 users01.dbf 数据文件,example01.dbf 文件被重命名。您将使用手动修复和自动修复选项来诊断和修复这些故障。 ? |
|
| 2. |
输入以下 URL 登录到企业管理器数据库控制(将 <主机名> 更改为本地主机或指定的主机名)。 https://<hostname>:1158/em |
|
| 3. |
如情景 1 中所描述的,您遇到一个“死掉的”数据库。您的任务是尽快诊断和修复此故障。单击 Startup。
|
|
| 4. |
输入以下详细信息,然后单击 OK。 Host Credentials Database Credentials
|
|
| 5. |
单击 Startup/Shutdown Confirmation 页面中的 Yes。
|
|
| 6. |
查看进度页面。
|
|
| 7. |
注意,数据库目前处于挂载状态。单击 View Details 获取详细信息。
|
|
| 8. | 查看数据库更改状态详细信息和错误消息,单击 OK。
? |
|
| 9. | 单击 Perform Recovery 诊断故障并执行修复。
|
|
| 10. | 在 Database Login 页面中输入以下详细信息,然后单击 Login。 Database Credentials
|
|
| 11. | 输入以下详细信息,然后单击 Continue。 Username:oracle
|
|
| 12. |
向下滚动至页面底部,确保以下凭证可用。向上滚动到该页面顶部,然后单击 Advise and Recover。 Username:oracle
|
|
| 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. |
返回企业管理器的 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 页面上,检查故障并修复将解决此故障的脚本。单击 Submit Recovery Job。
|
|
| 23. |
等待修复执行完成。当 Data Recovery Advisor 完成后,将显示 Repair Results 页面。查看所有修复结果。单击垂直滚动条。
|
|
| 24. |
单击垂直滚动条并拖动其直到末尾。注意,成功修复后,数据库将打开。单击 OK。
|
|
| 25. |
企业管理器显示 Login 页面。输入以下详细信息,然后单击 Login。
|
|
| 26. |
显示 Availability 页面。单击 Home 选项卡。
|
|
| 27. |
在 Database Instance 主页上,确认数据库实例打开并运行。(如果没有立即出现类似的页面,等一会然后刷新此页面。另请注意,在此软件的生产版之前图形元素可能会进行更改)。 单击 Logout,因为您通过执行手动和自动修复完成了死掉的数据库的修复。
|
|
要诊断和修复块损坏,执行以下步骤:
| 1. | 要在 example01.dbf 数据文件中设置块损坏,使用终端窗口导航到您的工作目录并执行以下命令: ./dra2_setup.sh
对应用程序用户来说,块损坏错误通常以这种形式出现。DBA 可在企业管理器 DB 控制主页看到同一错误(参见以下若干步骤)。然而,由于错误恢复和显示错误的企业管理器间的内部处理,有一点延迟。 ? |
| 2. |
输入以下 URL 登录到企业管理器数据库控制(将 <主机名> 更改为本地主机或指定的主机名)。 https://<主机名>:1158/em |
| 3. |
要登录到企业管理器,输入以下详细信息,然后单击 Login。
|
| 4. |
单击 Availability 选项卡。
|
| 5. |
单击 Perform Recovery。
|
| 6. |
在 Perform Recovery 页面上,您会看到 Data Recovery Advisor 检测出损坏的块。单击 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 sys/oracle as sysdba
|
要诊断和修复“死掉的”数据库,执行以下步骤:
| 1. | 要设置一个数据故障并关闭数据库,使用终端窗口导航到您的工作目录并执行以下命令: ./dra1_setup.sh 检测到 users01.dbf 数据文件,example01.dbf 文件被重命名。您将使用手动修复和自动修复选项来诊断和修复这些故障。 看到以下行时,您知道设置已完成:
|
| 2. |
由于您发现自己的数据库处于“死掉的”状态,尝试用以下命令启动它: sqlplus / as sysdba 注意,该数据库被挂载并有一个数据文件错误。
|
| 3. |
用以下命令退出 SQL*Plus 并启动 RMAN: exit
|
| 4. |
执行以下命令,列出故障和故障详细信息: LIST FAILURE; 您可以输入大写或小写命令。
注:使用软件的测试版时,您的输出可能与上面的屏幕截图不同。
|
| 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
|
完成此 OBE 后或您希望针对前提条件再次启动时,执行以下命令:
| 1. | 在终端窗口中输入以下命令: ./dra_cleanup.sh 下面是部分输出:
|
在本教程中,您学习了如何:
| 用企业管理器修复“死掉的”数据库 | ||
| 用企业管理器修复块损坏 | ||
| 用 RMAN 命令行修复“死掉的”数据库 | ||