db2 事件监视器类型


[db2inst1@onekey db2detaildeadlock]$ db2 "create event monitor dlock for deadlocks with details history write to file '/onekey/soft/dlock'"

[db2inst1@onekey db2detaildeadlock]$ db2 "select evmonname, EVENT_MON_STATE(evmonname) as state from syscat.eventmonitors"


EVMONNAME                                                                                                                        STATE      

-------------------------------------------------------------------------------------------------------------------------------- -----------

DB2DETAILDEADLOCK                                                                                                                          0

DB2DETAILDEADLOCK_2                                                                                                                        1

DLOCK                                                                                                                                      0


[db2inst1@onekey db2detaildeadlock]$ db2 set event monitor dlock state 1

DB20000I  The SQL command completed successfully.

[db2inst1@onekey dlock]$ ll

total 8

-rw-r--r-- 1 db2inst1 db2iadm1 282 Oct 16 10:00 00000000.evt

-rw-r----- 1 db2inst1 db2iadm1  31 Oct 16 10:00 db2event.ctl


[db2inst1@onekey db2detaildeadlock]$ db2 flush event monitor dlock

[db2inst1@onekey db2detaildeadlock]$  db2 set event monitor dlock state 0

[db2inst1@onekey dlock2]$ db2evmon -path /onekey/soft/dlock/ > /tmp/1.lock

or

db2inst1@onekey dlock2]$ db2evmon -db fhdbmdb -evm 'dlock' > /tmp/2.lock



http://blog.sina.com.cn/s/blog_68bd10c7010157ri.html


https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_10.5.0/com.ibm.db2.luw.admin.mon.doc/doc/c0059011.html

https://www.ibm.com/support/knowledgecenter/zh/SSEPGG_10.5.0/com.ibm.db2.luw.admin.mon.doc/doc/t0007496.html


可使用事件监视器来捕获与系统上发生的许多不同事件种类相关的信息。

下表列示系统中发生的以下事件的类型,您可使用事件监视器监视这些事件。它还描述了为不同事件收集的数据的类型以及收集监视数据的时间。第二列中显示的事件监视器的名称与用于使用 CREATE EVENT MONITOR 语句创建该类型的事件监视器的关键字相对应。

表 1. 事件类型
要监视的事件的类型 事件监视器名称 事件监视器属性 详细信息
锁定和死锁 LOCKING 此事件监视器的用途 用于确定锁定或死锁的发生时间以及涉及的应用程序。使用 LOCKING 事件监视器而不是建议不要使用的 DEADLOCKS 事件监视器的优点包括整合报告锁定和死锁事件及包含有关锁定等待和锁定超时的信息。
收集的数据 有关涉及的应用程序的综合信息,包括参与语句(和语句文本)的标识和要挂起的锁定的列表。
生成事件数据的时间 1 检测下列任何事件类型时,根据您配置事件监视器的方式:
  • 锁定超时

  • 死锁

  • 超过指定持续时间的锁定等待

执行 SQL 语句或其他衍生数据库活动的操作。 ACTIVITIES 此事件监视器的用途 用于跟踪个别语句和其他活动的执行以了解哪些活动正在系统中运行。而且还可用于因为诊断而捕获活动和研究 SQL 的资源消耗。
收集的数据 活动级别数据,通常对应涉及工作负载管理对象的活动。
  • 如果指定 WITH DETAILS 作为针对工作负载管理对象的 CREATE 或 ALTER 语句的 COLLECT ACTIVITY DATA 子句的一部分,那么所收集信息包括具有该对象的活动的语句和编译环境信息。如果还指定了 WITH SECTION,那么还会捕获语句、编译环境、片段环境数据和片段实际情况。

  • 如果还在针对工作负载管理对象的 CREATE 或 ALTER 语句上指定了 AND VALUES,那么所收集的信息还将包括具有该对象的活动的输入数据值。

生成事件数据的时间 1
  • 在已启用 COLLECT ACTIVITY DATA 选项的服务类、工作负载或工作类中执行的活动完成时。

  • 已启用 COLLECT ACTIVITY DATA 选项的活动违反阈值时。

  • 执行 WLM_CAPTURE_ACTIVITY_IN_PROGRESS 存储过程时。

  • 使用 WLM_SET_CONN_ENV 存储过程对其启用活动收集的连接执行活动时。

SQL 语句的执行 STATEMENTS 此事件监视器的用途 用于查看因为执行 SQL 语句对数据库发出了什么请求。
收集的数据 语句启动或停止时间、使用的 CPU、动态 SQL 的文本、SQLCA(SQL 语句的返回码)及其他度量值,如访存计数。对于分区数据库:使用的 CPU、执行时间、表和表队列信息。

注意:

  • 使用语句事件监视器、数据操作语言 (DML) 语句(例如,INSERT、SELECT、DELETE 和 UPDATE)监视 SQL 过程的执行时,会生成事件。过程语句,例如,变量赋值和控制结构(例如,WHILE 或 IF),不会以确定性方式生成事件。

  • 当时间戳记开关设为 OFF 时,语句启动或停止时间不可用。

生成事件数据的时间 SQL 语句的结束 2 ;对于分区数据库,子节的结束 2
工作单元(事务)完成 UNIT OF WORK 此事件监视器的用途 用于收集在系统上运行的工作单元的资源使用信息和性能指标。此信息可用于的范围包括:从为应用程序使用的系统资源的付款或退款用途生成报告到诊断运行速度缓慢的例程导致的性能问题的用途。

对 TRANSACTIONS 事件监视器的建议。

收集的数据 有关工作单元(事务)的信息,例如,开始时间和停止时间以及运行这些工作单元的工作负载和服务类。用于包括有关在工作单元中运行的语句的包或可执行标识的信息以及请求度量值的选项。
生成事件数据的时间 1 在工作单元完成之后
从程序包高速缓存中去除片段 PACKAGE CACHE 此事件监视器的用途 用于捕获不再在程序包高速缓存中的语句(和相关度量值)的历史记录。如果需要检查内存中不再可用的语句的性能指标,那么可使用此信息。
收集的数据 包括针对该片段的所有执行聚集的语句文本和度量值。
生成事件数据的时间 1 因为从程序包高速缓存中去除了条目。
应用程序建立的与数据库的连接 CONNECTIONS 此事件监视器的用途 用于捕获应用程序建立的与数据库的每个连接的度量值和其他监视元素。
收集的数据 所有应用程序级别计数器。例如,应用程序连接至数据库或与数据库断开连接的时间,或者涉及该应用程序的锁定升级的数目。
生成事件数据的时间 连接结束 2
取消激活数据库 DATABASE 此事件监视器的用途 用于捕获以下度量值和其他监视元素,它们反映激活后有关整个数据库的信息。
收集的数据 所有数据库级别计数器。例如,自激活后与数据库建立的连接数、等待锁定所耗用的时间或插入的数据行数。
生成事件数据的时间 数据库取消激活 2
BUFFERPOOLS

TABLESPACES
此事件监视器的用途 用于捕获与缓冲池和表空间相关的度量值
收集的数据 缓冲池、预取程序、页清理程序和每个缓冲池的直接 I/O 的计数器。
生成事件数据的时间 数据库取消激活 2
TABLES 此事件监视器的用途 用于捕获与数据库激活后更改的表有关的度量值。
收集的数据 表级别计数器,例如,读取或写入的行数,或数据、LOB 或索引对象使用的磁盘页数。
生成事件数据的时间 数据库取消激活 2
有关工作负载管理对象的统计信息和度量值 STATISTICS 此事件监视器的用途 用于捕获与数据库中的工作负载管理对象(例如,服务超类或工作负载)相关的处理度量值。例如,可使用统计信息事件监视器来检查给定工作负载随时间变化的 CPU 利用率。
收集的数据 从在系统中每个服务类、工作负载或工作类内执行的活动计算而来的统计信息。
生成事件数据的时间 可按固定时间间隔自动收集统计信息。此时间间隔是使用 wlm_collect_int  数据库配置参数定义的。

还可使用 WLM_COLLECT_STATS 存储过程手动收集数据。

注: 通过任一收集机制,统计信息监视元素的值在发生收集后重置为 0。

超过工作负载管理器阈值 THRESHOLD VIOLATIONS 此事件监视器的用途 用于确定数据库操作期间何时超过您设置的特定阈值。可对各种对象(范围从 CPU 时间、数据库连接数到特定语句的执行)设置阈值。所收集数据可用于各种用途,包括监视潜在问题(例如,达到对临时表空间的限制)。
收集的数据 阈值违例信息。
生成事件数据的时间 检测到阈值违例时。阈值是使用 CREATE THRESHOLD 语句定义的。
对数据库或数据库管理器配置的更改 CHANGE HISTORY 此事件监视器的用途 捕获对数据库和数据库管理器配置的更改、对注册表设置的更改、DDL 语句的执行和实用程序的执行
收集的数据 数据库配置参数和数据库管理器配置参数更改、注册表变量更改、DDL 语句的执行、某些 DB2® 实用程序和命令的执行以及变更历史记录事件监视器启动。

注: 通常,不会捕获在变更历史记录事件监视器处于不活动状态或数据库脱机时发生的事件的相关信息。但是,会记录对注册表变量和配置参数的更改。

生成事件数据的时间 1 监视器启动期间,参数或变量发生更改的时间或命令、DDL 或实用程序的完成时间。

注意:

  1. 如果在活动事件监视器处于活动状态时数据库被取消激活,那么会废弃队列中积压的活动记录。为确保您获取所有活动事件监视器记录并且没有任何废弃记录,请在取消激活数据库之前取消激活该活动事件监视器。显式取消激活活动事件监视器后,事件监视器取消激活前会处理队列中所有积压的活动记录。

  2. 除了自动发生数据收集的已定义时间外,还可使用 FLUSH EVENT MONITOR SQL 语句来生成事件。此方法生成的事件将使用所有监视器类型(DEADLOCKS 和 DEADLOCKS WITH DETAILS 除外)的当前数据库监视器值写入,这些监视器类型与清空的事件监视器相关联。

表 2. 不推荐使用的事件监视器的事件类型
要监视的事件的类型 事件监视器名称 事件监视器属性 详细信息
死锁 DEADLOCKS 2 此事件监视器的用途 用于确定死锁的发生时间以及涉及的应用程序。
收集的数据 涉及的应用程序及处于争用状态的锁定。
生成事件数据的时间 死锁检测
DEADLOCKS WITH DETAILS 2 此事件监视器的用途 用于确定死锁的发生时间以及涉及的应用程序。
收集的数据 有关涉及的应用程序的综合信息,包括参与语句(和语句文本)的标识和要挂起的锁定的列表。如果使用 DEADLOCKS WITH DETAILS 事件监视器而不是 DEADLOCKS 事件监视器,那么会导致发生死锁时性能下降,原因是收集了其他的信息。
生成事件数据的时间 死锁检测
DEADLOCKS WITH DETAILS HISTORY 2 此事件监视器的用途 用于确定死锁的发生时间以及涉及的应用程序。
收集的数据 DEADLOCKS WITH DETAILS 事件监视器中报告的所有信息以及每个应用程序的当前工作单元的语句历史记录, 这些应用程序拥有的锁定参与了挂起该锁定的数据库分区的死锁方案。如果使用 DEADLOCKS WITH DETAILS HISTORY 事件监视器,那么会导致激活时性能轻微下降,原因是进行了语句历史记录跟踪。
生成事件数据的时间 死锁检测
DEADLOCKS WITH DETAILS HISTORY VALUES 2 此事件监视器的用途
收集的数据 带有详细信息的死锁历史记录中报告的所有信息,以及在执行语句时对所有参数标记提供的值。如果使用 DEADLOCKS WITH DETAILS HISTORY VALUES 事件监视器,那么会导致激活时性能较为严重的下降,原因是额外复制数据值。
生成事件数据的时间 死锁检测
工作单元(事务)完成 TRANSACTIONS 3 此事件监视器的用途
收集的数据 UOW 工作启动或停止时间、先前的 UOW 时间、耗用的 CPU 以及锁定和记录度量值。如果使用 XA 运行,那么不会生成事务记录。
生成事件数据的时间 工作单元完成时 1

注意:

  1. 除了自动发生数据收集的已定义时间外,还可使用 FLUSH EVENT MONITOR SQL 语句来生成事件。此方法生成的事件将使用所有监视器类型(DEADLOCKS 和 DEADLOCKS WITH DETAILS 除外)的当前数据库监视器值写入,这些监视器类型与清空的事件监视器相关联。

  2. 建议不要使用此事件监视器。建议不要再使用此选项,将来的发行版可能会将其移除。请使用 CREATE EVENT MONITOR FOR LOCKING 语句来监视与锁定相关的事件,例如锁定超时、锁定等待和死锁。

  3. 建议不要使用此事件监视器。建议不要再使用此选项,将来的发行版可能会将其移除。请使用 CREATE EVENT MONITOR FOR UNIT OF WORK 语句来监视事务事件。

注: 将为每个新创建的数据库创建详细的死锁事件监视器。此事件监视器称为 DB2DETAILDEADLOCK,将在激活数据库时启动,并且写至数据库目录中的文件。可通过删除此事件监视器来避免它需要的额外处理器时间。建议不要使用 DB2DETAILDEADLOCK 事件监视器。建议不要再使用此选项,将来的发行版可能会将其移除。请使用 CREATE EVENT MONITOR FOR LOCKING 语句来监视与锁定相关的事件,例如锁定超时、锁定等待和死锁。




文件或管道事件监视器的输出是一个逻辑数据分组二进制流。可使用  db2evmon  命令从命令行格式化此数据流。  此高效工具从事件监视器的文件或管道读取事件记录,然后将它们写至屏幕(标准输出)。

开始之前

除非连接至数据库,否则不需要任何权限,如果连接至数据库,那么需要具有下列其中一个权限:

  • SYSADM

  • SYSCTRL

  • SYSMAINT

  • DBADM

关于此任务

可通过提供事件文件的路径或提供数据库名称和事件监视器名称,以指示想要格式化的事件监视器输出。

过程

要格式化事件监视器输出:

  • 指定包含事件监视器文件的目录:

    db2evmon -path '/tmp/dlevents'
    

    /tmp/dlevents 表示(UNIX)路径。

  • 指定数据库和事件监视器名称:

    db2evmon -db 'sample' -evm 'dlmon'
    

    sample 表示事件监视器所属的数据库。

    dlmon 表示事件监视器。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26224914/viewspace-2216503/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26224914/viewspace-2216503/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值