APP下载

基于SMF的大型主机DB2数据库分析工具

2017-09-03姜厚云

实验技术与管理 2017年8期
关键词:报表图表工具

陆 坤, 姜厚云

(大连理工大学 软件学院, 辽宁 大连 116600 )

基于SMF的大型主机DB2数据库分析工具

陆 坤, 姜厚云

(大连理工大学 软件学院, 辽宁 大连 116600 )

开发了一个基于IBM大型主机SMF数据的DB2数据库分析工具。利用该工具,可以从SMF数据中提取与DB2数据库相关的实时运行状态数据,将其以图表的形式在开放平台上展示出来,可以在Web端对DB2的SQL语句执行情况、CPU利用率、TOTAL、COMMITS和ROLL BACK等参数进行查询、图表显示以及对比显示同类测试,能够帮助管理人员进行大型主机数据库系统便捷、高效地实时监控和应急处理。

大型主机; DB2数据库; 系统维护

大型主机(Mainframe,System z)凭借极高的可靠性、可用性、安全性而活跃在银行、保险、航空以及大型企业的后台数据中心,运行着最关键、最核心的业务[1]。目前全球超过80%的企业数据存储在大型机DB2数据库中。但是,随着数据的大量增加,使大型机日常维护工作变得日益困难[2-4]。DB2系统作为大型主机系统中数据存储和处理最重要的平台,如何对其性能进行及时、准确的分析,并能够依据分析结果给出合理的维护方案和维护策略就显得尤其重要[5]。在测试时段长、测试场次多的情况下,从结构复杂的SMF(resource measurement facility)中提取并打印一份DB2性能报表常常要耗费一两天的时间,而且操作麻烦。

本文旨在开发一个大型主机数据库系统管理分析工具,力求及时、准确、完整地从SMF中获得数据库系统数据,降低分析的复杂程度,并对数据进行科学分析和合理利用,完善系统安全监控、优化主机性能和科学的容量评估,保障用户的关键业务持续健康发展。

1 开发目的与开发思路

大型主机系统可以通过系统工具SMF对包括DB2子系统在内的系统运行原始数据进行实时收集,并将这些原始数据存储在SMF的数据集中。为了获取大型主机运行的原始数据,研究SMF数据的基本结构和使用方法非常重要[5]。目前国内外对SMF数据的研究主要是理论方面的研究,理论研究专注于研究SMF记录的组成和存储结构,包括各类数据字段的生成时间、产生来源、各字段数据的含义以及通过各类数据的组合应用,提取主机性能数据。商业公司也给出了一些对SMF数据进行直接提取和生成报告的工具,但是价格昂贵,并且对生成报告的格式和数据的使用也有限制。

目前,IBM公司对SMF数据应用实行开放政策,所有的数据字段和格式均对用户免费开放,因此可以利用编程工具有针对性、有目的地对特定SMF的数据进行加工处理,生成契合用户需求的报告和性能分析图表。开发基于SMF数据集的DB2数据库分析工具,可以将这些繁琐的工作程序化[6-8],在减少DBA的工作量的同时,也为内存分析提供了长期有效的数据。

本文所开发的大型主机DB2数据库分析工具基于对主机运行数据的分析,而最原始、最完整的数据资料全部存储于SMF中,其中最主要的DB2相关信息是存放在SMF Record Type 100、101、102中。因此,开发数据库分析工具的思路是:在主机端已安装OMEGAMON的环境下,利用作业控制语言(简称JCL)得到标准化的DB2报表,然后用REXX脚本语言挑选一些能够衡量DB2数据库性能的参数,将这些参数保存到数据库中。使用主机上存放的数据,利用JavaScript编写的图表库Highcharts对数据进行图表化,使数据以更加直观的形式展示给数据库管理员[9-10]。

2 系统的总体设计

本数据库分析工具的系统流程如图1所示。其中查询条件包括日期、时间、Box名、系统名、Lpar名等。用户可以根据自己的需要,调整每页所显示的数据的条数。

图1 系统流程图

用户可以通过选择图表页面得到非常友好的显示界面,也可以根据分析的需要设置坐标轴所代表的参数。针对一些测试时段长、参与测试系统多的大测试,可以使用局部放大功能对图表进行局部放大。此外,如果选择不同时间段的同类型测试,系统会将这些不同时间段多次测试的结果以图表的形式展示,并用不同的颜色标注不同测试时间段的图形,以便于用户进行对比。

2.1 主机端功能设计

主机端的功能是得到DB2分析工具需要展示的各种数据。首先将SMF数据中与DB2相关的部分提取出来,然后将DBA日常分析中最常用的一些数据进行二次提取、存储,最终供开放端使用[11-12]。主机端包括以下功能:

(1) SMF数据整理:主机端整理SMF数据的目的是将报告形式的SMF数据整理成行记录形式,一般记录以时间顺序排序,具有相同的时间间隔,这样方便将SMF数据导入开放平台数据库中;

(2) 活动或作业:主机端利用Z/OS上FTP服务,根据用户配置将数据集传到指定的开放平台FTP服务器上;

(3) 定时提交作业:用户能在主机端为SMF数据整理和下传指定执行时间和执行间隔,使主机端对SMF数据的操作完全自动化;

(4) 抓取SYSLOG:主机端能不间断地读取SYSLOG,将SYSLOG按一定格式插入到指定的主机端的DB2表中。

2.2 开放端功能设计

开放端的主要功能是将主机端提供的数据以直观、形象的方式显示给用户。需要展示的信息包括RMF的数据查询和DB2的数据分析,包括SQL语句执行情况、CPU使用率等,查询结果以数表、图表或对比图表显示,以及历史数据的查询。

(1) RMF数据查询功能。用户可以在开放端查询数据,查询条件包括时段、报告间隔和区域(如Sysplex)等,系统可按用户选择的条件显示查询结果。

(2) DB2数据分析功能。用户可以将查询的DB2数据用图表方式来显示,图表的x轴一般是日期和时间,y轴由用户选择的SMF数据字段决定;用户还可以将同类型、不同时间段的数据进行对比显示。

(3) 查询历史数据。当用户需要查询历史数据时,只需要设定需要查询的时间段,然后和正常的查询一样,可以查到其数表和图表。

(4) 图表对比功能。通常,主机工程师对于DB2报表的分析是发生在特殊条件下的,例如,DB2系统升级、Z/OS或CICS升级带来的连带性能测试、基于主机的新应用功能的测试以及最常见的大数据的压力测试等,这些测试都是在2个或多个不同的系统环境和时间下进行的,因此,需要将2个或多个时间段内的报表进行横向比较,作出客观性的分析。

3 主机端实现

3.1 从SMF数据中得到格式化的DB2报表

SMF数据集是一个VSAM文件,不能直接打开,而是需要编写JCL程序将信息从SMF数据集中导出。SMF数据集在系统安装有DB2性能监测工具Omegamon的环境下,通过编写JCL作业,可以得到一个标准的格式化报表,通常称之为中间文件。在SMF中,与DB2相关的记录号为100、101、102,因此,通过在主机端编写JCL,就可以从SMF数据集中得到DB2完整的格式化报表。关于这部分功能实现的部分核心代码如下所示。

//SAVE EXEC PGM=DB2PM,REGION=0M //STEPLIB DD DSN=OMEG1.BT1.RKANMOD, DISP=SHR //*SMF SOURCE DATA AS INPUT //INPUT DD DSN=SMF.WEEKLY.G0057V00,DISP=SHR // DD DSN=SMF.WEEKLY.G0058V00,DISP=SHR //SORTOUT DD UNIT=SYSDA,DISP=(NEW,DELETE) //SYSUT1 DD UNIT=SYSDA,DISP=(NEW,DELETE) //SORTWK01 DD UNIT=SYSDA,DISP=(NEW,DELETE) //SORTWK02 DD UNIT=SYSDA,DISP=(NEW,DELETE) //STWORK DD UNIT=SYSDA,DISP=(NEW,DELETE) //STSAVDD1 DD DISP=SHR,DSN=IBMSER.STDD.FILE //DPMLOG DD SYSOUT=A //SYSOUT DD SYSOUT=A //SYSIN DD *

DB2PM GLOBAL (

FROM (12/01/10,00:00:00)

TO (12/31/10,24:00:00)

TIMEZONE(8)

SYSPRMDD(SYSPRMDD))

STATISTICS

REDUCE

(FROM (,09:30:00)

TO (,18:30:00)

INTERVAL(60)

BOUNDARY(30)

)

SAVE

DDNAME(STSAVDD1)

DB2PM EXEC

/

3.2 从DB2格式化报表中提取关键参数

SMF数据记录了与DB2相关的所有参数,但对于数据库管理人员来说,需要关注的往往只是其中比较有代表性、比较核心的少量参数,例如CPU使用率、内存使用率、DEADLOCK以及TIMEOUT的次数等。因此,通过REXX编写程序,将最被关注、最常用的参数提取出来,会令工作效率大大提高。

REXX是与大型主机、中型操作系统和低端操作系统捆绑的脚本和命令语言,是一种非常灵活的编程语言。由于中间文件的格式是固定的,所以REXX以中间文件为输入文件。根据中间文件关键参数的参数名和该参数在文件的每条记录中所处的位置,可以将关键的参数先存入输出文件,作为输出文件的标题行。随后,REXX逐行将这个参数所对应的数据提取出来,同样存入输出文件中对应的参数名下。

4 开放端实现

开放端为整个客户环境里所有用户提供数据查询、生成图表和历史数据查询的功能。

4.1 RMF数据查询模块

RMF数据查询模块提供不同报表类型的RMF数据查询。当用户进入页面时,系统会初始化表格,用户根据自己的业务需要输入查询条件,点击数据查询。表现层将数据交给服务器端的控制层,控制层调用业务逻辑层,业务逻辑层调用数据访问层获取对应数据,再交给控制层,最后控制层将数据交给表现层,表现层将数据赋值给表格,表格生成完毕。数据查询流程如图2所示。

数据查询界面如图3所示。在“选择区域”可选择CF、CPU以及Paging等不同的报表类型,然后选择对应的Sysplex和Lpar;在“选择时段”中添加欲查询的测试时间段,点击查询之后可以显示生成的表格;在生成的表格中,可以选择每一页可以显示的条目数、可以搜索表格中的关键字、可以显示当前条目和总条目数。页面有2个翻页按钮,用户可以根据自己的需要调整每页显示的条数。

4.2 生成图表模块

本数据库分析工具可生成DB2各种性能的图表,这些图表由JavaScript的图表库Highcharts编写,能与用户产生良好的交互。当用户进入页面时,系统会初始化图表。然后,用户可以在该界面选择时间段,可以设定查询条件和图表参数。

系统的界面表现层会判断数据是否合法,若不合法则弹出错误信息。接着,界面表现层将数据交给服务器端的控制层,控制层再次检验输入数据是否合法,若不合法则直接跳转到出错页面。然后,控制层调用业务逻辑层,业务逻辑层调用数据访问层获取对应数据,再交给控制层,最后控制层将数据交给界面表现层,表现层将数据赋值给图表,图表生成完毕(见图4)。

图2 数据查询流程

图3 SMF数据查询界面

图4 生成图表界面

4.3 同类测试对比模块

由于系统升级、安装新的软硬件产品后都需要测试DB2的性能状况,因此,在不同的系统情况下进行相同数据量的压力测试,成为最常见的测试手段之一。本工具提供了一个可以对比不同时段、同一参数变化的功能模块。在对比模块的界面中,用户可添加多个测试时段,系统会生成多个测试数据的对比图表(见图5)。图中蓝色条形为10月份测试中SQL语句执行的情况,红色条形为11月份测试中SQL语句执行情况。从图5中直观地展现出两次测试中的SQL语句执行情况,从而得到DB2系统运行情况的总括。

图5 同类测试对比模块界面

5 结语

基于SMF的大型主机DB2数据库分析工具通过自动化抽取、整理存储在SMF中的DB2的运行信息,并以图形化的形式进行展示和分析。在后端通过JCL提取SMF的相应字段,将其中与DB2系统相关的所有参数提取出来,形成标准的DB2报表,然后用REXX脚本语言提取其中的常用核心参数,最后将结果输入DB2中,并能够在Web端展示。该工具使数据库管理人员可以更加便捷地掌握主机数据库的运行状态,以便更加及时地对主机进行管理操作,无需每次都要编写复杂脚本,简化了系统运维的流程,降低了误操作的可能性,对用户和管理员也更加直观。

References)

[1] Ebbers M, Kettner J, O’Brien W, et al. Introduction to the New Mainframe: z/OS Basics[M].USA:IBM International Technical Support Organization,2012.

[2] 韩兆云.综合业务异地灾备系统三层异构云服务平台[J].金融电子化,2014(9):70-72.

[3] 崔江慧,刘会玲,刘树庆.高校大型仪器设备管理的实践与探索[J].实验室研究与探索,2011,30(10):198-200.

[4] 王云平.国外大学实验室管理及其对国内开放实验室的启示[J].实验技术与管理,2010,27(3):149-151.

[5] 张鹏.CA管理平台打造大型机“可视化”管理[J].通信世界,2011(23):37-38.

[6] 邓强.通过REXX与SDSF实现JES的可编程信息采集[J].中国金融电脑,2004(5):34-37.

[7] 刘武,孙东红,任萍,等.基于移动智能终端管理的远程监控与管理技术[J].实验技术与管理,2013,30(4):58-61.

[8] 王秀丽,潘雷,顾贵芬.基于组态技术的机房监控系统设计[J].实验室科学,2015,18(6):60-63.

[9] 张颖,李六旬.大型主机Z/OS操作系统基础教程[M].北京:电子工业出版社,2010.

[10] 张颖,李六旬.大型主机DB2数据库基础教程[M].北京:电子工业出版社,2010.

[11] Parziale L,Miu A, Levey R,et al. Implementing REXX Support in SDSF[M].USA:IBM Corp,2007.

[12] 高珍,刘恒,王天琪,等.大型主机系统管理REXX编程详解[M].北京:清华大学出版社,2012.

Analysis tool for mainframe DB2 database based on SMF

Lu Kun, Jiang Houyun

(School of Software,Dalian University of Technology, Dalian 116600, China)

An analysis tool for the DB2 database based on SMF data of IBM mainframe is developed. With this tool, the real-time data related to the DB2 database can be extracted from the SMF data and displayed on an open platform in the form of charts. The SQL statement execution of DB2, the CPU utilization ratio, the parameters of TOTAL, COMMITS, ROLL BACK, etc., can be inquired, displayed by chart and compared with the similar tests at the Web side. It can help the administrators to carry out the convenient and efficient real-time monitoring and control, and emergency handling of the mainframe database system.

mainframe; DB2 database; system maintenance

10.16791/j.cnki.sjg.2017.08.035

2017-02-20 修改日期:2017-04-11

辽宁省高等教育教学改革研究项目(UPRP20140233);大连理工大学教育教学改革重大项目(ZZD2016001);大连理工大学教育教学改革项目(YB2017073)

陆坤(1980—),男,江苏徐州,博士,讲师,软件学院创新实践基地主任,主要研究方向为网络安全和创新人才培养.E-mail:lukun@dlut.edu.cn

TP311.13

A

1002-4956(2017)08-0141-05

猜你喜欢

报表图表工具
波比的工具
波比的工具
LabWindows/CVI中Excel报表技术研究
准备工具:步骤:
从三大报表读懂养猪人的成绩单
“巧用”工具
双周图表
双周图表
双周图表
图表