本教程描述如何使用支持工作台分析数据字典损坏。
大约 30 分钟
本教程介绍了以下主题:
| 概述 | ||
| 前提条件 | ||
| 创建数据字典损坏 | ||
| 创建字典完整性检查 | ||
| 查看活动事件 | ||
| 创建问题程序包 | ||
| 清理 | ||
| 总结 | ||
将鼠标置于此图标上可以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将鼠标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。可以通过单击各个屏幕截图来将其隐藏。
企业管理器支持工作台(支持工作台)是一个实用工具,它通过一个易于使用的图形化界面使您能够调查、报告以及在某些情况下修复问题(关键错误)。支持工作台为您提供一个自助方法,可以在非常短的时间内以最少的工作量收集第一个故障诊断数据、获取支持请求号,并将诊断数据上载到 Oracle Support,从而缩短问题的解决时间。支持工作台还推荐并提供了对 Oracle 顾问的轻松访问,以帮助您修复 SQL 相关问题、数据损坏问题等。
开始学习本教程之前,您应该先完成以下步骤:
| 1. | 安装 Oracle 数据库 11g。 |
|
| 2. | 将 swkbnch.zip 文件下载并解压缩到您的工作目录中。 |
|
在本教程中,您分析一个数据字典损坏,使用支持工作台分析此问题,然后将该问题打包以发送到 Oracle Support。在本部分中,设置此问题。执行以下步骤:
| 1. | 打开一个终端窗口。从文件的解压缩目录执行以下命令以创建数据字典损坏 ./corr_setup.sh
|
要开始分析此问题,可通过创建字典完整性检查在数据字典上触发一个健康状况检查。执行以下步骤:
| 1. | 打开一个浏览器,输入以下 URL: http://<hostname>:1158/em 输入 sys 作为用户名,指定 oracle 作为口令,为 Connect As 选择 SYSDBA,然后单击 Login。
|
| 2. | 在主页上,向下滚动,在 Related Links 下选择 Advisor Central。
|
| 3. |
选择 Checkers 选项卡。
|
| 4. | 单击 Dictionary Integrity Check。
|
| 5. |
输入 DicoCheck1 作为 Run Name 参数的值,然后单击 OK。
|
| 6. | 该检查成功运行。要查看详细信息,从列表中选择 DicoCheck1 Run 并单击 Details。
|
| 7. |
您可以查看一些数据损坏。尤其是,您将看到以下内容:“SQL dictionary health check:invalid column number 9 on object TAB$ failed”。这对应于引用 HR.OBETABLE 的 TAB$ 中的一行。单击 Database 路径式导航栏。
|
在本部分中,您将进一步调查此问题。执行以下步骤:
| 1. | 在主页面上查看 Alerts 部分。您会看到对于前面检测到的损坏有一个新的关键警报 (Data Failure)。
|
| 2. | 切换到终端窗口,执行以下命令: sqlplus / as sysdba alter system flush shared_pool; alter system flush buffer_cache; select * from hr.obetable;
注意,您会收到一条 end-of-file on communication channel 错误。这意味着肯定有地方出错了。您现在将调查此问题。 |
| 3. | 切换回企业管理器,您会注意到在主页的 Diagnostic Summary 部分有一个活动事件。选择编号链接。
|
| 4. | 在 Support Workbench Problems 页面上,您应该看到一个新的活动事件,它的 Description 类似于 ORA 7445 [qcstda()+515]。选择 + 展开该问题的详细信息。
|
| 5. | 单击事件编号。
|
| 6. | Incident Details 页面出现。记下活动编号。在 Application Information 部分中,您看到 SQL Text“select * from hr.obetable”语句是导致此事件的原因。您还会看到生成了两个转储文件。
|
如果无法修复问题,则需要将向 Oracle Support 通知该问题。Oracle Support 希望收集尽可能多的详细信息,以查明问题所在,从而将其有效地报告给开发。为此,可将问题打包以以便发送给 Oracle Support。执行以下步骤:
| 1. | 在 Problem Details 页面的 Investigate and Resolve 部分中,选择 Quick Package。
|
| 2. | 在 Create New Package 窗口中,对于 Send to Oracle Support 选择 No。
|
| 3. | 刷新该页面后,单击 Next。
|
| 4. | 列出要打包的事件,单击 Next。
|
| 5. | 显示清单详细信息。单击 Next。
|
| 6. | 确保选中了 Immediately,然后单击 Submit。
|
| 7. | 正在生成程序包。
|
| 8. | 程序包文件已成功生成。单击 OK。
|
| 9. | 要查看程序包,单击 Summary 部分中 Packaged 下的 Yes。
|
| 10. | 选择生成的文件并单击 View。
|
| 11. | 在 Packaging Details 页面上,选择 Files 选项卡。
|
| 12. | 显示包含在该程序包中的文件列表。现在可将该程序包发送到 Oracle Support 进行进一步分析。
|
分析此问题之后,您认识到 OBETABLE 的列数在 TAB$ 中是错误的。要修复此问题,需要更新 TAB$ 并关闭您的问题。执行以下步骤:
| 1. | 切换回终端窗口,执行以下脚本: ./corr_fix.sh
|
| 2. | 切换到企业管理器,选择 Problems in Package 旁边的链接。
|
| 3. | 选择此问题前面的复选框,然后单击 Close。
|
| 4. | 要进行确认,单击 Yes。
|
| 5. | 这些事件已经关闭。
|
在本教程中,您学习了如何:
| 创建字典完整性检查 | ||
| 查看和调查活动事件 | ||
| 创建问题程序包 | ||
将鼠标移到该图标上可以隐藏所有屏幕截图