内容


DB2 生产系统上应用 IBM Data Server Manager 实现性能优化

Comments

概述

在 DB2生产系统上做性能调优是复杂又需要极其小心的工作:一方面,性能问题的解决需要分析和反复调整直到最优,会影响生产系统上繁忙的业务;另一方面,没有经过安全测试的调优方案会给生产系统带来风险。所以测试系统和生产系统的协调配合至关重要。

我们的调优工作需要一整套工作流:在生产系统上监测和定位问题,然后迁移到测试系统上进行分析,反复调整直到结果最优,经过安全性测试,然后把这套调优方案同步的生产系统。

从前,这套方案是需要数个不同的 DB2 工具配合使用才能完成,过程复杂。如今,借助 IBM Data Server Manager, 一个平台就可以完美而智能地支持整套工作流了。

相关概念

Data Studio

IBM® Data Studio for DB2 for Linux, Unix and Windows 提供一个集成的模块化环境,用于 IBM DB2® for Linux, UNIX and Windows 的数据库开发和管理。该软件免费提供。

Configuration Manager

IBM® InfoSphere® Optim™ Configuration Manager for DB2 for Linux, Unix and Windows 帮助组织更好地了解其数据库环境。提供客户端和服务器库存、跟踪客户端/服务器属性更改,以及将客户端/服务器环境与最佳实践配置进行比较。可以在配置偏离时生成警报、控制客户端行为以及优化数据库存储,从而提高可用性并降低成本。

Performance Manager

IBM® InfoSphere® Optim™ Performance Manager for DB2® for Linux, UNIX and Windows 帮助企业提高数据库和应用程序性能,降低成本。为数据库管理员 (DBA) 和其他 IT 员工提供前瞻性管理性能所需的信息,并帮助在问题影响业务前解决问题。

Query Workload Tuner

IBM® InfoSphere® Optim™ Query Workload Tuner for DB2 for Linux, UNIX and Windows 提供专家建议,帮助提高查询工作负载的性能。可帮助优化应用程序性能、降低专业技能需求、降低总体拥有成本,而且现在还包含有关新的 DB2 for Linux, UNIX and Windows 10.5 列组织的表的建议。

Data Server Manager

IBM® Data Server Manager 是一个简单的、可扩展的、便捷的可用来操作、监控、管理和优化整个企业的 DB2 for Linux, UNIX and Windows 以及 DB2 for z/OS 数据库性能的工具平台。它把多个系统的信息整合到一个单一的图形界面,而这一图形界面可以从任何标准的网页浏览器便捷访问。

示例简单介绍

本示例通过对比新旧两种实现客户工作流的方式,详细介绍 IBM Data Server Manager 各功能组件的特性,各组件间相互调用的协调性,以及各功能组件集成后的优越性。

客户场景背景介绍

假设,我们是 DB2 DBA 团队,现在有一套 DB2 for for Linux, UNIX and Windows 生产系统,它的性能已经出了问题。目前已知,某些 SQL 查询花的时间很长,我们希望能根据查询优化的一些理论知识和实践经验对这些 SQL 进行优化,但是却又顾虑重重。为什么呢?

生产系统往往承载着繁忙的业务。查询优化目前有一些 DB2 工具可以支持,可以降低知识难度,提高优化效率和减少人为错误,然而这样的工具在执行分析工作时一定会对生产系统带来负担,影响业务。除此之外,查询优化方案如果直接在生产系统上执行,不经过实际的验证测试,又很可能给生产系统带来风险。最好能把这样的分析和验证的工作都搬到测试系统上去。

客户场景工作流需求

首先需要把有问题的 Workload 放到测试系统上,定位到有问题的 Query,然后分析给出优化建议并执行,这一定位、分析、执行的过程可能需要反复进行,直到结果最优或者达到满意水平。优化方案要在测试系统上经过测试验证。最终,比较测试系统和生产系统,把在测试系统上优化方案产生的变更同步到生产系统上,实现对生产系统的优化,解决生产系统的性能问题之忧。

图 1. 客户场景工作流需求

实现客户工作流的老办法

从前,可能需要数个工具来帮助完成整个工作流。

比如说,其中一种方案是:

  1. 使用 Data Studio 来在测试系统上模拟 workload。
  2. 然后使用 Optim Performance Manager 来监控 workload 以定位到有问题的 Query。
  3. 然后使用 Query Workload Tuner 来实现测试系统的查询优化。
  4. 然后使用 Configuration Manager 来实现测试系统和生产系统的同步。

实现客户工作流的新办法

如今,使用 Data Server Manager,把从前需要数个工具来支持的工作流简单的用一个统一个平台就可以实现了。

图 2.Data Server Manager 实现客户工作流方案

如上所示,我们可以使用 Data Server Manager 平台的四个功能板块,无缝连接起来使用。这四个功能板块是:SQL Editor,Monitor,Optimize,以及 Administer。

方案如下:

  1. 首先,把有性能问题的 workload 从生产系统上搬到测试系统上,借助 SQL Editor 功能板块来运行;
  2. 然后使用 Monitor 功能板块,快速定位到需要调优的 Query 上去;
  3. 当在 Monitor 板块选中需要调优的 Query 后,一个按钮就可以无缝跳转到 Optimize 功能板块;
  4. Optimize 功能板块集成了查询优化的理论知识和实践经验,会自动地给出查询优化的建议;
  5. 在测试系统上执行查询优化过程给出的建议;
  6. 反复执行从 1 至 5 的过程,直到 workload 的性能已经达到满意水平;
  7. 使用 Administer 功能板块,对测试系统和生产系统进行比较,找出它们的不同,生成将它们同步到一致状态的可执行变更方案;
  8. 在可执行变更方案页面直接选择执行,就会自动返回到 SQL Editor 功能板块,将变更在生产系统上自动执行。

示例环境配置

Data Server Manager 提供了轻量级的安装,包括两种版本:Data Server Manager Base Edition 和 Data Server Manager Enterprise Edition。我们的示例用到了 Data Server Manager 提供的多种功能,特别是 Query Tuning 的功能,所以必须要安装 Data Server Manager Enterprise Edition。

相比于 Data Server Manager Base Edition,Data Server Manager Enterprise Edition 提供了更高级的特性,包括加强的监控、中心化的配置管理、优化的性能管理和专业化建议的 Query 调优特性。Data Server Manager Enterprise Edition 是与“DB2 for Linux, UNIX and Windows advanced editions”或者“DB2 for Linux, UNIX and Windows Performance Management Offering for non-advanced DB2 for Linux, UNIX and Windows Editions”打包在一起出售的。

安装 Data Server Manager Enterprise Edition

截至本文撰稿时,Data Server Manager 的最新版本是 version 1.1.2。

系统需求:http://www-01.ibm.com/support/docview.wss?uid=swg27045176

下载说明:http://www-01.ibm.com/support/docview.wss?uid=swg24039424

安装说明:http://www-01.ibm.com/support/docview.wss?uid=swg21958071

在 Data Server Manager 中添加生产系统和测试系统

Data Server Manager 安装好后,为了使用 Enterprise Edition 提供的高级功能,首先需要添加 Repository Database。可以参考 http://www-01.ibm.com/support/knowledgecenter/SS5Q8A_1.1.0/com.ibm.datatools.dsweb.ots.installconfig.doc/topics/configuringwizard.html?cp=SS5Q8A_1.1.0&lang=en。

然后,便可以添加测试系统和生产系统的数据库连接。如何添加数据库连接可以参考 http://www-01.ibm.com/support/knowledgecenter/SS5Q8A_1.1.0/com.ibm.datatools.dsweb.ots.installconfig.doc/topics/add_db_connection.html?cp=SS5Q8A_1.1.0&lang=en。

如下图所示,在【Home】页面,可以看到已经添加了两个数据库连接:irww_1 作为测试系统,和 irww_2 作为生产系统。

图 3. 添加测试系统和生产系统的数据库连接

实际上,在企业中,一般会监控更多个数据库连接。这里把测试系统和生产系统的数据库连接加入到了【Favorites】中,是为了更加醒目的区别于其他的数据库连接。接下来的讲述,都是针对 irww_1 测试系统和 irww_2 生产系统的,忽略其他的数据库连接。

示例具体实现步骤

在测试系统上模拟 workload

首先,把有性能问题的 workload 从生产系统上搬到测试系统上,借助 SQL Editor 功能板块来运行。

具体步骤如下:

  1. 选择【Develop】下面的【SQL Editor】进入 SQL Editor 功能板块。
  2. 选择屏幕右上角的【Options】选项,然后在【Database connection】这一行通过下拉框选择测试系统数据库连接“irww_1".
  3. 在左侧的 SQL TEXT 框中录入从生产系统上找到我们比较关心的 SQL。如下图所示。
    图 4. 借助 SQL Editor 执行 Query
  4. 点击上面最左边的按钮【Run】, 在测试系统上模拟 workload 的执行。

在测试系统上定位可疑的 query

在 Data Server Manager 中,选择【Monitor】菜单,然后选择其下面子菜单【Databases】。在选择 Database 时,选择测试系统 irww_1, 打开针对 irww_1 的 Monitor 功能板块。在该板块中选择子页面【Statements】下面的【Executed Statements】。

图 5. 打开 Executed Statements 页面

在上图中,我们可以看到很多 Query。为了快速定位到刚才通过 SQL Editor 执行过的 Query,可以使用右上角的像漏斗一样的【Define filter】按钮。

如下图所示,找到了执行过的 Query。

图 6. 定位到了问题 Query

选中找到的 Query,然后如下图所示,点击【Tune Query】按钮,执行查询优化。

图 7. 执行查询优化

接下来,已经自动地被引导到 Optimize 功能板块了。

在测试系统上执行查询优化

在 Tune Query 的时候,为了示例简单,都是直接使用默认选项。如下图所示,直接接受默认选项,然后点击【Run】按钮提交 Tune Query 的 job。

图 8. 提交 Tune query job

Tune Query job 经过一两秒就已经完成。如下图所示,选中这个刚刚完成的 job,然后选择图中上面菜单栏的【View Results】按钮,查看查询优化建议。

图 9. 查看查询优化结果

如下图所示,查询优化共提供了两条建议,分别是关于 Statistics analysis 和 Index analysis 的。

图 10. 查询优化结果概览

如下图所示,选择左边菜单栏的【RUNSTATS Script】菜单,打开 Statistics analysis 建议。将会看到有两条 Statistics analysis 建议。检查无误后,点击上面的【RUNSTATS Script】,直接执行 RUNSTATS Script。

图 11. 执行 Statistics analysis 建议

如下图所示,接下来选择左边菜单栏的【Index Script】菜单,打开 Index analysis 建议。看到有一条 Index analysis 建议。检查无误后,点击上面的【Run Recommended DDL】,直接执行 Index Script。

图 12. 执行 Index analysis 建议

至此,在测试系统上,一次从执行 workload,到定位有问题的 Query,再到得到查询优化建议,并在测试系统上执行的简单过程就示例了一轮。

在测试系统上反复执行查询优化

现在让我们回顾一下,在具体实现步骤中都进行了哪些步骤。

  1. 首先,把有性能问题的 workload 从生产系统上搬到测试系统上,借助 SQL Editor 功能板块来运行;
  2. 然后使用 Monitor 功能板块,快速定位到需要调优的 Query 上去;
  3. 当在 Monitor 板块选中需要调优的 Query 后,一个按钮就可以无缝跳转到 Optimize 功能板块;
  4. Optimize 功能板块集成了查询优化的理论知识和实践经验,会自动地给出查询优化的建议;
  5. 在测试系统上执行查询优化过程给出的建议。

接下来,可以反复执行从 1 至 5 的过程,直到 workload 的性能已经达到满意水平。

比较测试系统和生产系统

当测试系统上的 workload 性能达到满意水平之后,比较一下测试系统和生产系统,看看测试系统都做了哪些变更。

在 Data Server Manager 的最左侧的菜单栏,选择【Administer】菜单下的子菜单【Explore Databases】,进入 Administer 功能板块。选择 irww_1 测试系统数据库连接。

如下图所示,在左侧树形视图中选择数据库 irww_1 下面的【Tables】,然后在右侧列出的 tables 中选择在 workload 中用到的几个 table。然后点击上面菜单栏中的【Compare】按钮。

图 13. 执行测试系统和生产系统的比较

在接下来的选项页面中,选择生产系统 irww_2 作为 Compare 的目标数据库。为了示例的简单,这里其他选项都接受默认选项。然后点击【Next】按钮,执行测试系统和生产系统的对象比较。

图 14. 设置测试系统和生产系统的比较选项

如下图所示,测试系统 irww_1 和生产系统 irww_2 的不同一览无遗。

点击上方的【Generate Command】按钮,可以生成把测试系统上的变更同步到生产系统上的 DB2 命令,是可执行的变更方案。这些命令会显示在下方的【Command】文本框中供查看。

图 15. 查看比较结果

如上图中,确认无误后,点击【Next】按钮,进入下图的页面。

选择【Edit in SQL Editor】选项,然后点击【Finish】按钮,离开 Administer 功能板块,进入 SQL Editor 功能板块。

图 16. 进入 SQL Editor 准备系统变更同步

在生产系统上执行变更同步

再次进入到 SQL Editor 功能板块,此时,Data Server Manger 已经自动将 irww_2 生产系统作为了数据库连接。

如下图所示,点击左上角的【Run】按钮,变更就被同步到生产系统上了。

图 17. 在生产系统上执行变更同步

确认测试系统和成产系统已经同步

在 Data Server Manager 的最左侧的菜单栏,选择【Administer】菜单下的子菜单【Explore Databases】,重新进入 Administer 功能板块。选择 irww_1 测试系统作为数据库连接。

重复前面执行过的步骤,在左侧树形视图中选择数据库 irww_1 下面的【Tables】,然后在右侧列出的 tables 中选择在 workload 中用到的几个 table。然后点击上面菜单栏中的【Compare】按钮。

结果如下图所示,所有的 tables 都显示“No differences”,说明生产系统和测试系统的同步已经完成。

图 18. 确认测试系统和生产系统已经同步

总结

本文通过示例向读者展示了 IBM Data Server Manager 应用于 DB2 系统性能优化方面的功能特性。借助 IBM Data Server Manager, 用户实现了对 DB2 系统性能的配置、测试、调整及同步操作。已往需要多个 DB2 工具配合完成的工作,如今已经完美的整合到一个全新的平台。


相关主题

  • 参考 Data Server Manager 系统需求,了解 Server Manger 的系统需求。
  • 参考 Data Server Manager 下载说明,了解如何下载 Data Server Manger。
  • 参考 Data Server Manager 安装说明,了解如何安装 Server Manger。
  • 登录 IBM Data Server Manager Knowledge Center,可深入理解和学习 IBM Data Server Manager 的安装及使用。
  • 访问“IBM Data Server Manager Wiki”,可登录了解、学习和使用 IBM Data Server Manager。
  • 访问 developerWorks Information Management 专区,了解关于信息管理的更多信息,获取技术文档、how-to 文章、培训、下载、产品信息以及其他资源。

评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Information Management
ArticleID=1036827
ArticleTitle=DB2 生产系统上应用 IBM Data Server Manager 实现性能优化
publish-date=09022016