Oracle 数据库 11g 扩展了一系列功能,通过提供集群范围的性能分析,提升了数据库的可管理性。自动数据库诊断监视程序 (ADDM) 的一个特别模式对 Oracle 真正应用集群 (RAC) 数据库集群进行分析,然后报告影响整个集群以及单个实例的问题。该模式称为数据库 ADDM,对应于 Oracle 数据库 10g 中已有的实例 ADDM。适用于 RAC 的数据库 ADDM 不仅是一个报告报表,而且有适合 RAC 的独立分析。
数据库 ADDM 可以访问所有实例生成的 AWR 数据,因此可更准确地对全局资源进行分析。数据库 ADDM 和实例 ADDM 都以持续的时间段运行,这些时间段可包括实例启动和关闭。如果是数据库 ADDM,在分析期间可以有几个实例处于关闭或启动状态。但在整个时间段中,您必须保持数据库为同一版本。数据库 ADDM 在每个快照摄取后自动运行。实例 ADDM 与在 Oracle 数据库 10g 中一样自动运行。您还可以对集群中的一部分实例进行分析。这称为部分分析 ADDM。以下情形通过举例说明了 RAC 环境中 ADDM 的下钻功能。
| 1. |
打开浏览器窗口,以 SYS 用户身份登录 Enterprise Manager。进入 Cluster Database Home 页面后,单击 Performance 选项卡。


|
| 2. |
以 oracle 用户身份打开终端窗口,执行 addm_rac_setup.sh 脚本。该脚本为每个用户创建一个表空间和一个表,本教程中将用到这些表空间和表。
./addm_rac_setup.sh

|
| 3. |
在同一终端会话中,执行 run_workload.sh 脚本。该脚本开始向先前创建的表中插入行。请等待直至脚本执行完毕。看到“PL/SQL procedure successfully completed”消息后,请按“return”。
./run_workload.sh
|
| 4. |
返回到 Enterprise Manager 会话,查看 Average Active Sessions 图。您可以看到 Concurrency 和 Cluster 等待类的高等待次数。

|
| 5. |
在您的工作负载完成其执行后,执行 create_snapshot.sh 脚本。该脚本将生成一个新的 AWR 快照以强制进行 ADDM 分析。
./create_snapshot.sh

|
| 6. |
返回到 Enterprise Manager 会话,单击 Home 选项卡返回到 Cluster Database Home 页面。

|
| 7. |
在 Home 页面上等待几分钟,直到 ADDM Findings 链接出现在 Diagnostic Summary 部分中。出现后,单击 ADDM Findings 域前面的数字。

|
| 8. |
进入 Automatic Database Diagnostic Monitor 页面后,单击分析报表顶部的 Top SQL by DB Time 链接。该发现是全局性的。

在 Top SQL by DB Time 页面上,单击 Show All Details 链接。

您应该看到一些 INSERT 语句,它们使用了两个实例都使用的共有序列对象。

完成后,单击页面顶端的 ADDM breadcrumb 链接。

|
| 9. |
回到 Automatic Database Diagnostic Monitor 页面,单击分析报表顶部的 Sequence Usage 链接。它显示两个实例都受到该发现的影响。ADDM 告诉您查看位居前列的 SQL 语句以调查最经常使用的序列。完成后,单击页面顶端的 ADDM breadcrumb 链接。该信息表示先前看到的序列可能就是问题所在。


|
| 10. |
单击在 Affected Instances 表中的 racdb_racdb1 链接下钻至第一个实例。

单击 Finding 栏中的 Top SQL by DB Time 链接。

单击 Recommendations 部分中的 Show All Details 链接。

您应当使用您在实例层面可以查看的信息来证实先前看到的全局信息。

完成后,单击 ADDM breadcrumb 链接返回 ADDM 报表的顶端。

|
| 11. |
单击 Database 选项卡,然后单击 Performance 选项卡,返回 Performance 页面。


|
| 12. |
返回到终端会话,执行 addm_rac_fix.sh 脚本。该脚本使用大得多的 CACHE 值重新创建 culprit 序列。

|
| 13. |
执行 create_snapshot.sh 脚本。该脚本生成新的 AWR 快照。
./create_snapshot.sh

|
| 14. |
完成后,再次执行 run_workload.sh 脚本,等待该脚本执行完毕。看到“PL/SQL procedure successfully completed”消息后,请按“return”。

|
| 15. |
返回到 Enterprise Manager 会话,查看 Average Active Sessions 图。您不会再看到 Concurrency 和 Cluster 等待类的高等待次数。

|
| 16. |
在您的工作负载完成其执行后,执行 create_snapshot.sh 脚本。该脚本将生成一个新的 AWR 快照以强制进行新的 ADDM 分析。
./create_snapshot.sh

|
| 17. |
返回到 Enterprise Manager 会话,单击 Average Active Sessions 图下的最新快照图标。您将直接进入最新的 ADDM 报表。

|
| 18. |
在 ADDM 报表页面,您将看不到任何与序列相关的问题。

|