Download presentation
Presentation is loading. Please wait.
1
<Insert Picture Here>
Foglight DB2PD 监控解决方案
2
agenda Db2pd命令工具 定制个性化的db2pd monitor agent Db2pd agent诊断场景
3
Db2pd命令工具 背景 该工具提供大量有用信息,帮助进行故障诊断与问题定位,性能提高 和应用程序开发设计,包括:
Db2pd是一个新的实用程序,可用来从正在运行的 DB2实例或数据库检索 统计信息。 该技术来自于Informix的onstat实用程序 支持DB2 V8.2以上版本 该工具不需要任何锁存器或使用任何引擎资源,因此检索速度更快,并不 争用引擎资源 该工具提供大量有用信息,帮助进行故障诊断与问题定位,性能提高 和应用程序开发设计,包括: 操作系统、DBM和DB配置参数 Lock,bufferPool,Tablespace,Container Dynamic SQL Agent Application,Transaction Memory
4
Db2pd命令工具
5
Db2pd命令工具
6
定制个性化的db2pd monitor agent监控
鞋子合不合脚,只有自己知道 定制个性化的db2pd monitor agent监控
7
介绍: db2pd Agent 定制个性化的db2pd monitor agent监控
纯Java代码开发 定制的客户化功能和界面 变即时监控工具为历史诊断工具 Db2pd Agent 是基于db2pd 工具监控db2系统的一个组件模块, 可以监控如下的目标对象: Locks Applications Dynamic Transactions AppInfo 其命令行原型为 db2pd -db $database -locks -transactions -applications -dynamic -apinfo 系统会定时调用命令行,并分析其输出,格式化并传给服务器, FMS会保留每个监控对象历史性能指标, 用来指示当前系统的运 行状态,实现故障诊断与问题定位的目的。
8
介绍: DB2PDMonitor Agent (续)
每个DB2PDMonitor Agent 需要指定其默认保存的DB2PD输出路径、数据库名称,对应的实例用户以及对应的采集频率
9
丰富的图表展示 安装之后, 在Foglight中就会出现全局菜单DB2PD, 其中首页为DB2PD Database Home
比如, DB2PD Database Home 就展示了所有DB2 数据库历史时间段 Lock\Applications\Transactions\AppInfo\Dynamic(数据和时间范围可以随时随意自己设定)
10
丰富的图表展示(续) 默认展示Database Home, 任何时候想指定时间段db2pd所抓取的信息,只需要点击主监控界面上的数据链接,相关的全部清单资料就自动展示出来 比如,点击Instance视图上的数据线(按Address聚合) 比如,点击Database视图上的数据线(不按Address聚合方式,显示所有)
11
报警定义 Critical Warning Fatal Normal Not Available Severity Levels
在监控系统中可以设定系列阈值,当采样数据超过指定数值(一般是数字)时,就会有报警信息传达给用户,比如一些视图中的显示颜色就会发生变化 Not Available Severity Levels Foglight 提供了5个严重等级, 每个都有自己单独的颜色区分 Critical Warning Fatal Normal
12
报警定义(续) 如果监控界面中,相关目标颜色不正常,用户最好根据提示检查其目标数据库系统,确认问题并最终解决它
当系统软硬件环境发生变化,或业务逻辑有更改时, 这些阈值可以由用户自己随时更改成最适合自己业务模式的
13
Rule 规则定义 Foglight 规则触发类型 Time Driven Event Driven Data Driven
我们通常会采用数据或时间驱动的规则, 通过邮件,来通知客户关心的事件发生 Rule Event Driven Time Driven Data Driven 预定义了2条规则: 1.锁规则: 用来指示当前有多少锁与锁升级 2.活动日志规则: 用来指示当前特定transaction占用了多少活动日志及SpaceReserved大小. 当预先定义的条件触发时,它们都会发邮件通知或者手机短信到用户
14
规则定义 (续) FogLight的文档给出了配置这些规则的完整说明, 参考它们, 就可以根据业务需要, 设定自己满意的多个规则, 和多个动作(比如发邮件) 规则逻辑可以更加复杂,比如,可以设定某个条件触发了三次,并且每次间隔不超过2分钟, 这样类似的定义
15
定期报表 PDF format report, will be attached to an email, send to users.
Foglight可以用 PDF/XML/Excel的格式,定期自动生成报表,发给预先指定的邮件地址. DB2PDMonitor Agent 预先定义了2种报表: 1. 锁报表与应用:收集统计指定历史时刻产生的锁信息. 2. AppInfo报表:收集统计指定历史时刻系统所有的AppInfo信息 PDF format report, will be attached to an , send to users.
16
定期报告 (续) 报表可以设定触发在: 每日初 每月初 每周初 每工作周结束 日结 月结 上班时间 下班时间 周末 ……
可以设定多个邮件地址,以送达不同的报表查阅者
17
db2pd 诊断场景一 分析锁问题
18
Step1:死锁模拟 成功模拟死锁的结果
19
Step2:锁定位-DB2PD Lock History
记录下的锁信息:sts表示状态,这里的W表示wait,也就是说红色框中两个应用在试图使用同一个行锁,只是下面框中的应用已经获得这个行锁,而上面框中的应用在等待获得这个行锁。 从中可以看到tranHdl为3的一个应用在等待获得行锁,而tranHdl为7的应用持有3号应用等待的行锁。
20
Step3:定位事务-DB2PD Transactions History
在Transaction页面里面得到如下信息,可以根据tranHdl找到对应的appHandl,此例中tranHdl为3和7的应用对应的appHandl分别为22910和22911。
21
Step4:定位应用-DB2PD Application History
在Application页面里找到apphandl所执行的语句,用下图中的信息可以获取两个应用的AnchID和StmtID分别为176、4和157、4的语句。
22
Step5:定位动态语句-DB2PD Dynamic History
在Dynamic页面找到AnchID和StmtID分别为176、4和157、4的语句,这样就找到产生死锁的原因了。
23
db2pd 诊断场景二 抓取静态语句
24
测试目的与方案 测试目的 由于很多数据库问题需要抓取package中静态sql进行分析,该案例主要是 测试db2pd功能包是否可以抓取静态语句。 测试方案 用交易模拟程序发起交易(该程序是以package形式执行),看foglight 的新功能页中是否会显示该package中的静态语句。
25
特定时间段静态语句抓取 发起tt程序,记录程序发起的时间;
在foglight页面中,时间区间选取发起程序的时间段,然后查看结果中是否有名字为yjy的程序,同时查看是否有该应用执行的语句或者在程序包中的段信息。 可以看到这个应用的PackageSchema、PackageName、sqlType、StatmentType、隔离级别、Section Number等信息。这些信息,可以用来定位问题。
26
db2pd 诊断场景三 分析详细运行时信息
27
特定时间段详细运行时信息抓取 显示applications(包括当前UOW正在执行的动态SQL语句);
在foglight页面中,时间区间选取发起程序的时间段,然后查看结果中Active Statements不为N/A的记录 可以看到这个应用的PackageSchema、PackageName、sqlType、StatmentType、隔离级别、Section Number等信息。这些信息,可以用来定位问题。
28
特定时间段应用的运行记录 通过点击DB2PD AppInfo页面中的address,可以跟踪该Application历史运行记录,分析其占用的资源等,如下图 可以跟踪Application在历史时间段的运行细节
29
结束语 1 2 3 业界唯一一款针对DB2PD工具的最专业的历史监控和诊断系统
集中于故障时刻最细节的数据,洞察数据库的所有活动 2 便捷的监控时间范围设定, 邮件和报告生成配置,以利于用户查看完整重要的DB2PD数据。 并在紧急情况下及时采取行动 3 默认之外,所有的视图和展现都可以让客户根据业务需求来自己设定. 针对不同的监控目标数据, 通常选择最好的表示展现方式
Similar presentations