chapter10:监控和调整数据库

第 10 章:监控和调整数据库

目的

本章向您介绍通过企业管理器执行的一些监控和调整操作。

主题

本章讨论了以下内容:

bullet.gif主动监控数据库
bullet.gif诊断和解决性能问题
bullet.gif使用 SQL Tuning Advisor
bullet.gif使用 SQL Access Advisor
bullet.gif使用 Memory Advisor

view_image.gif 将鼠标移到这个图标上,显示所有的屏幕截图。 您还可以将鼠标移到各个图标上,以只查看与该图标相关的屏幕截图。

主动监控数据库

返回主题列表

警报帮助您主动地监控数据库。 大多数警报是在超过特定的量度阈值时发出的通告。 您可以为每一个警报设置临界和警告阈值。 这些阈值即为边界值,如果超过了这些边界值,则指示系统处于非预期的状态。

在这一部分中,您将执行以下任务:

bullet.gif创建具有指定阈值的表空间和表
bullet.gif触发表空间的空间使用率警报
bullet.gif设置量度阈值
bullet.gif设置通告
创建具有指定阈值的表空间和表

首先创建包含有一个 20 MB 的数据文件的一个新的表空间。 将本地管理这个表空间,并使用自动段空间管理 (ASSM)。 然后您在这个新的表空间中创建一个新的表。 这个表将把 Enable Row Movement 选项设为 yes,以允许表中的空间回收。 执行以下操作:

1.

单击数据库主页上的 Administration 链接。

将鼠标移到这个图标上来查看图像

2.

单击 Tablespaces 链接。

将鼠标移到这个图标上来查看图像

3.

单击 Create 按钮。

将鼠标移到这个图标上来查看图像

4.

输入 TBSALERT 作为表空间名称,然后单击 Add,为表空间定义一个数据文件。

将鼠标移到这个图标上来查看图像

5.

输入 tbsalert.dbf 作为数据文件名,并输入 20 MB 作为文件大小。 单击 Continue

 
6.

单击 Thresholds,指定空间使用率警告和临界阈值水平。

将鼠标移到这个图标上来查看图像

7.

单击 Specify Thresholds, by percent used。 设置数据库范围的默认空间使用率阈值。 为 Warning% 输入 60,为 Critical% 输入 68。单击 OK

将鼠标移到这个图标上来查看图像

8.

单击 Database 导览栏,返回 Administration 属性页面。

将鼠标移到这个图标上来查看图像

9.

单击 Tables 链接。

将鼠标移到这个图标上来查看图像

10.

单击 Create

将鼠标移到这个图标上来查看图像

11.

单击 Continue

将鼠标移到这个图标上来查看图像

12.

在 Name 域中输入 employees1。 指定 SYSTEM 作为模式,TBSALERT 作为表空间。 单击 Define Using 下拉列表,选择 SQL。 在 Create Table As 域中输入 select * from hr.employees,然后单击 Options

将鼠标移到这个图标上来查看图像

13.

为 Enable Row Movement 选择 Yes,然后单击 OK,完成表的创建。

将鼠标移到这个图标上来查看图像

14.

表已创建完成。 单击 Database 导览栏。

将鼠标移到这个图标上来查看图像

触发表空间空间使用率警报

您现在将更新表,触发空间利用率警报。 执行以下操作:

1.

打开 SQL*Plus 会话,然后执行以下命令:

 
2.

将以下 SQL 命令拷贝并粘贴到 SQL*Plus 会话中,以模拟 EMPLOYEES1 表上的用户活动:

 

将鼠标移到这个图标上来查看图像

3.

转至 Enterprise Manager 窗口。 单击 Database 导览栏,返回到 Administration 页面,然后单击 Tablespaces 链接。

将鼠标移到这个图标上来查看图像

4.

注意,TBSALERT 表空间使用百分率增加了。

将鼠标移到这个图标上来查看图像

5.

回切到 SQL*Plus 窗口,并将以下命令拷贝并粘贴到 SQL*Plus 会话中,,以模拟 EMPLOYEES1 表上的更多用户活动:

 

将鼠标移到这个图标上来查看图像

6.

转至 Enterprise Manager 窗口。 刷新浏览器(对于 Linux Mozilla,从菜单栏中选择 View,然后选择 Reload)。 注意,TBSALERT 表空间的空间使用百分率增加了。

将鼠标移到这个图标上来查看图像

7.

回切到 SQL*Plus 窗口,并将以下命令拷贝并粘贴到 SQL*Plus 会话中,,以模拟 EMPLOYEES1 表上的更多用户活动:

将鼠标移到这个图标上来查看图像

8.

将以下 SQL 命令拷贝并粘贴到 SQL*Plus 会话中,以模拟 EMPLOYEES1 表上的用户活动:

将鼠标移到这个图标上来查看图像

9.

转至 Enterprise Manager 窗口。 刷新浏览器(对于 Linux Mozilla,从菜单栏中选择 View,然后选择 Reload)。 注意,TBSALERT 表空间的空间使用率现在已经超过了临界阈值水平 (68%)。

将鼠标移到这个图标上来查看图像

10.

在您等待空间使用率警报显示在 Enterprise Manager 主页上时,请仔细查看表段统计数据。 单击 Database 导览栏,然后单击 Tables 链接。

将鼠标移到这个图标上来查看图像

11.

要查找 SYSTEM.EMPLOYEES1 表,请在 Schema 域中输入 system,在 Object Name 域中输入 emp。 单击 Go

将鼠标移到这个图标上

12.

单击 EMPLOYEES1 链接。

将鼠标移到这个图标上来查看图像

13.

单击 Segments

将鼠标移到这个图标上来查看图像

14.

注意 EMPLOYEES1 表中浪费空间的百分率。 您可能能够通过回收表中未使用的空间来解决表空间空间使用率警报。

在同一页面上,您可以为 Space Usage Trend 指定一个日期范围,然后单击 Refresh 按钮,以规划 EMPLOYEES1 表未来的空间使用率。 因为在 EMPLOYEES1 表上没有足够的活动历史纪录,所以您在空间使用率分析图中将看不到非常有意义的数据。 单击 Database 导览栏,然后单击 Home 页面标签。

将鼠标移到这个图标上来查看图像

15.

单击 Refresh 按钮几次,直到您看到一个红色的 x 和数字 1 紧邻着 Problem Tablespaces 出现。 向下滚动至 Alerts 表。

将鼠标移到这个图标上来查看图像

16.

您将看到一个 Tablespaces Full 警报。 单击 Tablespace [TBSALERT] is [70 percent] full 链接。

将鼠标移到这个图标上来查看图像

设置量度阈值

Oracle 提供了一组预先定义的量度,其中一些量度一开始就拥有为它们定义的阈值。 您将预先为 TBSALERT 表空间的表空间使用率定义一个量度。 要查看所有的量度,请执行以下操作:

1.

单击 Related Links 区域中的 Manage Metrics

将鼠标移到这个图标上来查看图像

2.

单击 Edit Thresholds

将鼠标移到这个图标上来查看图像

3.

向下滚动至 Tablespace Space Used (%),然后选择这个量度。 向上滚回到窗口顶部。

将鼠标移到这个图标上来查看图像

4.

单击 Specify Multiple Thresholds

将鼠标移到这个图标上来查看图像

5.

对于 TBSALERT 表空间,将警告阈值修改为 70,将临界阈值修改为 80。然后单击 OK

将鼠标移到这个图标上来查看图像

6.

修改完成。 单击 OK,将数据保存到数据库中。

将鼠标移到这个图标上来查看图像

7.

更新成功。 单击路径式导航栏中的 Database 导航项。

将鼠标移到这个图标上来查看图像

设置通告

当出现需要您干预的事件时,您可以选择性地提供通告。 默认地,临界状态的警报(如 Database Down、Generic Alert Log Error Stats 和 Tablespace Used)都设置为提供通告。 执行以下操作:

1.

单击 Database 主页顶部的 Setup

将鼠标移到这个图标上来查看图像

2.

单击 Notification Methods

将鼠标移到这个图标上来查看图像

3.

在 Outgoing Mailserver 域中输入<您的邮件服务器>,在 Identify Sender As 域中输入 dbaalert,在 Sender's Email 域中输入 notify01@oracle.com,然后单击 Apply。

将鼠标移到这个图标上来查看图像

4.

更新成功。 单击页面顶部的 Preferences

将鼠标移到这个图标上来查看图像

5.

单击 General 选项中 E-mail Addresses 的 Add Another Row

将鼠标移到这个图标上来查看图像

6.

输入 notify01@oracle.com 作为电子邮件地址,单击 Apply。 然后单击 Database

将鼠标移到这个图标上来查看图像

返回主题列表

在出现数据库性能问题时,需要您进行诊断和纠正。 有时用户抱怨性能缓慢会使您注意到问题。 其余的时候,您可能注意到主页上的 Host CPU 图中的性能尖峰。

在所有情况下,自动数据库诊断监控器 (ADDM) 都将标记这些问题,它默认每 60 分钟执行一次自上而下的系统分析,并在 Oracle Enterprise Manager 主页上报告它发现的问题。 ADDM 每 60 分钟自动运行一次,和自动工作负载信息库 (AWR) 采集的快照同步发生。 它的输出包含了它确认的每个问题的说明和建议操作。

bullet.gif生成性能问题查找结果
bullet.gif利用 ADDM 解决发现的性能问题

生成性能问题查找结果

为了演示 ADDM 如何工作,您要生成一个性能问题查找结果。 在本文中,您将创建一个等待行锁的会话。 要执行某些如更新和删除的操作,会话必须锁住该行。 执行以下步骤,生成性能问题查找结果:

1.

打开终端窗口,执行以下命令:

  

将鼠标移到这个图标上来查看图像

2.

再打开一个终端窗口,并执行以下命令,创建一个行锁冲突:

 

将鼠标移到这个图标上来查看图像

3.

单击 Enterprise Manager 窗口中的 Performance

将鼠标移到这个图标上来查看图像

4.

您将看到会话等待值非常高。 等待大约 10 分钟,然后向下滚动至窗口底部。

将鼠标移到这个图标上来查看图像

5.

您现在将创建快照来捕获性能问题。 单击 Snapshots

将鼠标移到这个图标上来查看图像

6.

单击 Create,创建快照。

将鼠标移到这个图标上来查看图像

7.

单击 Yes,创建人工快照。

将鼠标移到这个图标上来查看图像

8.

正在创建快照。

将鼠标移到这个图标上来查看图像

9.

一旦快照创建完成,请单击路径式导航栏中的 database 导航项,然后单击 home

将鼠标移到这个图标上来查看图像

10.

现在通过主页的 Alert 部分的一个警报,检测到了一个性能问题。

将鼠标移到这个图标上来查看图像

利用 ADDM 解决发现的性能问题

当遇到性能问题时,您可以使用 ADDM 来解决它。 执行以下操作:

1.

单击警报 Database Time Spent Waiting

将鼠标移到这个图标上来查看图像

2.

注意建议的操作是运行 ADDM 来获取更多的关于系统的性能分析。 单击 Additional Advice

将鼠标移到这个图标上来查看图像

3.

确保从列表中选择了您创建的快照。 注意 SQL statements were found waiting for row lock waits 将影响系统超过 86% 的数据库时间。 单击列表中的这个性能问题查找结果。

将鼠标移到这个图标上来查看图像

4.

您看到了解决该性能问题需要采取的操作。 单击 View Rationale

将鼠标移到这个图标上来查看图像

5.

您将看到引起问题的特定 SQL ID。 单击 Close

将鼠标移到这个图标上来查看图像

6.

要解决性能问题,请单击路径式导航栏中的 Database 导航项。

将鼠标移到这个图标上来查看图像

7.

单击 Performance

将鼠标移到这个图标上来查看图像

8.

向下滚动,然后选择 Additional Monitoring Links 下的 Blocking Sessions

将鼠标移到这个图标上来查看图像

9.

确保选择了最高级别的 HR,然后单击 Kill Session。

将鼠标移到这个图标上来查看图像

10.

单击 Yes,终止会话。

将鼠标移到这个图标上来查看图像

11.

会话终止。 单击路径式导航栏中的 Database 导航项,然后单击 Home

将鼠标移到这个图标上来查看图像

12.

注意警报已消失。

将鼠标移到这个图标上来查看图像

返回主题列表

数据库管理员或操作员执行以下任务来响应性地监控并诊断数据库性能问题:

bullet.gif查看数据库等待
bullet.gif检查 Database Wait 类的 TOP SQL
bullet.gif利用 SQL 调整顾问工具调整 SQL 语句
bullet.gif查看 SQL 语句的 SQL 执行细节

查看数据库等待

返回列表

您将首先启动几个工作负载会话。 然后您将查看数据库工作负载。 创建一个名称为 $HOME/wkdir 的目录。 下载 perflab.tar 文件,并将文件解压缩至 $HOME/wkdir 目录中。 执行以下步骤:

1.

打开一个命令行窗口,然后运行以下 OS 脚本:

注意: 这个脚本运行将花费大约 4 分钟。

2.

回切到 Enterprise Manager 窗口。 选择 Administration 链接。

将鼠标移到这个图标上来查看图像

3.

在标题为 Workload 的部分中,单击 Automatic Workload Repository 链接。

将鼠标移到这个图标上来查看图像

4.

确定已经为该数据库采集了多少快照。 查看 Snapshots 下的数量和最后一次 ADDM 快照采集的时间。 应该有至少三个快照。 单击路径式导航栏中的 Database 导航项。

将鼠标移到这个图标上来查看图像

5.

单击 Performance 链接。

将鼠标移到这个图标上来查看图像

6.

在 Performance 窗口中查看 Sessions: Waiting and Working 图。 显示一个表示数据库当前工作负载的图表。 (向图表填充数据可能要花一分钟)用 ADDM 快照采集的数据来填充这个图表。 图表的边上是图例。 每一个图例项目具有不同的颜色。 您可以从图中快速确定占用最多时间的项目是黄色的,即用户 I/O。单击 User I/O 链接。

将鼠标移到这个图标上来查看图像

7.

在 Active Sessions Waiting: User I/O 图表下有两个饼图。 查看左边的饼图 Top Waiting SQL。 这显示占绝大多数的等待 (53%) 是由一条 SQL 语句造成的。 查看右边的饼图 Top Waiting Sessions。 这个饼图显示当前最活跃的几个会话等待的时间几乎占相同的百分比。

将鼠标移到这个图标上来查看图像

检查 Database Wait 类的 TOP SQL

返回列表

如之前的任务所示,有一条 SQL 语句导致了大部分的数据库等待。 在这个任务中,您将深入了解根本原因。 执行以下操作:

1.

从 Active Sessions Waiting: User I/O 页面中,单击页面中部的 Top SQL

将鼠标移到这个图标上来查看图像

2.

在出现的详细页面上,查看 Wait Events for Top SQL 表,该表按 活动(%) 排序。 您可以看到 Top SQL 语句将其大部分时间花费在了 'db file scattered read' 活动上。 单击具有最高活动百分比的 SQL 语句的 SQL ID。

将鼠标移到这个图标上来查看图像

3.

显示这条 SQL 语句的执行计划。 单击 Current Statistics 标签。

将鼠标移到这个图标上来查看图像

4.

显示这条 SQL 语句的统计数据。 单击 Execution History 标签。

将鼠标移到这个图标上来查看图像

5.

显示这条 SQL 语句的统计分析图表。 CPU 和 Elapsed Time 图表显示在一段时间上执行这条 SQL 语句的 CPU 使用率。 选择 Seconds Per Execution,单击 Go,显示这条 SQL 语句的每次执行使用的时间和资源。

将鼠标移到这个图标上来查看图像

6.

从显示的图表中,可以确定 CPU 资源使用率在增加,执行这条 SQL 语句花费的时间也在增加。 单击 Tuning History 标签。

将鼠标移到这个图标上来查看图像

7.

显示之前为这条 SQL 语句提供的调整建议。 当前没有建议。 您现在准备好了使用 SQL Tuning Advisor 来调整 SQL 语句。

将鼠标移到这个图标上来查看图像

利用 SQL 调整顾问工具调整 SQL 语句

返回列表

正如在上一个关于响应式调整的部分中确定的那样,目标 SQL 语句需要调整。 SQL 调整顾问工具将为您调整执行计划。 执行以下操作:

1.

单击 Run SQL Tuning Advisor

将鼠标移到这个图标上来查看图像

2.

在 Schedule Advisor 窗口中,确保选择了 Scope 下的 Comprehensive,作业将立即安排。单击 OK

将鼠标移到这个图标上来查看图像

3.

SQL Tuning Advisor 将创建一个任务,以分析 SQL 语句,任务一旦完成,将显示一组调整建议。

将鼠标移到这个图标上来查看图像

4.

单击 View Recommendations

将鼠标移到这个图标上来查看图像

5.

单击 New Explain Plan 按钮,查看建议的修改。

将鼠标移到这个图标上来查看图像

6.

正如您所看到的,新的解释计划删除了全部的表扫描。 单击浏览器后退按钮,返回上一页。

将鼠标移到这个图标上来查看图像

7.

单击 Implement 按钮,执行调整建议。

将鼠标移到这个图标上来查看图像

8.

出现一条确认页面,指示 SQL Profile 成功创建。 单击路径式导航栏中的 Database 导航项。

将鼠标移到这个图标上来查看图像

查看 SQL 语句的 SQL 执行细节

返回列表

您已执行了调整建议,现在查看 SQL 语句和其执行细节。 执行以下步骤。

1.

执行 Performance

将鼠标移到这个图标上来查看图像

2.

向下滚动至 Sessions: Waiting and Working 图表。 等待一分钟,观察用户 I/O 如何减少。

将鼠标移到这个图标上来查看图像

返回主题列表

SQL Access Advisor 提供了许多过程,可以调用这些过程来帮助确定创建和丢弃哪些实体化化视图和索引。 它利用基于您的模式的,假定的工作负载,或从实际的工作负载(可能由用户提供、来自 Oracle Trace 或来自 SQL 高速缓存的内容)中作出决策。

还可以根据不同的标准对工作负载进行过滤,如只使用包含这些表的查询,或在这个范围中有优先权的查询。

bullet.gif准备环境
bullet.gif利用 SQL 高速缓存获取建议
bullet.gif查看和执行建议

准备环境

返回列表

执行以下步骤,为使用 SQL Access Advisor 准备好环境。 当 Advisor 在运行时,实体化视图和索引可能存在,但为了举例的目的,把它们删除了,以便您可以看到 Advisor 的建议。 您还需要设置高速缓存,以便 SQL Access Advisor 能够生成建议。 执行以下操作:

1.

打开一个终端窗口,然后执行以下命令,清理环境:

 

将鼠标移到这个图标上来查看图像

2.

现在您需要创建高速缓存。执行下列命令:


将鼠标移到这个图标上来查看图像

返回列表

您将使用您刚刚设置的 SQL 高速缓存来获取来自 SQL Access Advisor 的建议。 执行以下操作:

1.

打开浏览器,输入以下 URL:

 

输入 sys/<password></password> 作为 SYSDBA,单击 Login

将鼠标移到这个图标上来查看图像

2.

向下滚动至主页底部,然后单击 Related Links 下的 Advisor Central

将鼠标移到这个图标上来查看图像

3.

单击 SQL Access Advisor 链接。

将鼠标移到这个图标上来查看图像

4.

确保选中了 Current and Recent SQL Activity,然后单击 Show Advanced Options

将鼠标移到这个图标上来查看图像

5.

向下滚动。 在 Filter Options 下,选择 Filter workload based on these options。 选择 Only the top resource consuming SQL statements Only SQL statements executed by the following users。 然后在 Users 域中输入 SH,然后单击 Next

将鼠标移到这个图标上来查看图像

6.

选择 Both Indexes and Materialized Views,然后单击 Next

将鼠标移到这个图标上来查看图像

7.

输入任务名 OBE<today date></today>,为 Schedule Type 选择 Standard,然后单击 Next

将鼠标移到这个图标上来查看图像

8.

在概要窗口中,单击 Submit

将鼠标移到这个图标上来查看图像

返回列表

现在您可以查看结果,如果您希望,可以执行它们。 执行以下操作:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提供的源码资源涵盖了Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!
提供的源码资源涵盖了小程序应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 适合毕业设计、课程设计作业。这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。 所有源码均经过严格测试,可以直接运行,可以放心下载使用。有任何使用问题欢迎随时与博主沟通,第一时间进行解答!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值