使用支持工作台分析数据字典损坏

目的

本教程描述如何使用支持工作台分析数据字典损坏。

大约 30 分钟

主题

本教程介绍了以下主题:

概述
前提条件
总结

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

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

企业管理器支持工作台(支持工作台)是一个实用工具,它通过一个易于使用的图形化界面使您能够调查、报告以及在某些情况下修复问题(关键错误)。支持工作台为您提供一个自助方法,可以在非常短的时间内以最少的工作量收集第一个故障诊断数据、获取支持请求号,并将诊断数据上载到 Oracle Support,从而缩短问题的解决时间。支持工作台还推荐并提供了对 Oracle 顾问的轻松访问,以帮助您修复 SQL 相关问题、数据损坏问题等。

返回主题列表

开始学习本教程之前,您应该先完成以下步骤:

1.
2.

在本教程中,您分析一个数据字典损坏,使用支持工作台分析此问题,然后将该问题打包以发送到 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.

这些事件已经关闭。

将鼠标移到该图标上可以查看该图像

返回主题列表

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

创建字典完整性检查
查看和调查活动事件
创建问题程序包

返回主题列表

将鼠标移到该图标上可以隐藏所有屏幕截图