暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

利用DB2事件监控语句执行情况

不畏过往不惧将来 2021-05-12
1025

 

DB2提供了一个创建事件监听的功能,用于检查数据库的日常运行情况,这里给出一个对于日常开发我认为最有用的监听——STATEMENT,它的好处就是不必逐行逐行的读代码,直接从应用的操作所产生的数据变化来理解业务。

-- 连接数据库
db2 "connect to 【dbname】"
-- 创建事件监听
db2 "create event monitor stmtmon for statements write to file '/home/【login_username】/'"
-- 启动事件监听
db2 "
set event monitor stmtmon state=1"

--
-- 切换至应用程序进行数据库操作

--

-- 整理监听内容
db2evmon -db 【dbname】 -evm stmtmon </home/【login_username】/sqltrace.out

-- 停止事件监听
db2 "
set event monitor stmtmon state=0"
-- 删除事件监听
db2 "
drop event monitor stmtmon"
-- 结束连接
db2 "
terminate"
-- 整理监听内容
db2evmon -db 【dbname】 -evm stmtmon </home/【login_username】/sqltrace.out
-- 去除SELECT语句
grep -E 'Text +:' ./sqltrace | grep -v -i 'SELECT' | uniq > dml.sql.out

下面是一小部分输出内容:

  Text     : UPDATE xxx SET NOTREAD=1 WHERE id=730927
Text : INSERT INTO yyy(asign_id, taskcause, comments, submitter) VALUES(730927, 1, '', 93)
Text : UPDATE xxx SET NOTREAD=1 WHERE id=730927
Text : UPDATE xyz SET needappr=2178.38 WHERE idtask = 730927

在启动监听的时候,最常见的就是目录路径与读写权限的问题,以下内容可供参考,根据错误返回码做对应调整即可。

PS:
http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.messages.sql.doc/doc/msql01614n.html
SQL1614N
An I/O error occurred when activating an event monitor. Reason code = reason-code.

Explanation
An I/O error was detected when an event monitor was activated. >reason-code< is one of the following:
1
Encountered an unknown event monitor target type.
2
The Event monitor target path was not found.
3
Access to event monitor target path was denied.
4
Event monitor target path is not the name of a pipe.
5
No process has opened the event monitor target pipe for reading.
6
Encountered an unexpected I/O error.
User response
Where possible, fix the problem described by the reason code, and resubmit the SET EVENT MONITOR statement.

sqlcode: -1614

sqlstate: 58030


PS:

http://publib.boulder.ibm.com/infocenter/db2luw/v9r5/index.jsp?topic=/com.ibm.db2.luw.messages.sql.doc/doc/msql01614n.html

SQL1614N

激活事件监视器时发生I/O错误。原因代码=原因代码。


解释

激活事件监视器时检测到I/O错误。>reason-code<是以下其中之一:

1

遇到未知事件监视器目标类型。

2

没有找到事件监视器目标路径。

3.

拒绝访问事件监视器目标路径。

4

事件监视器的目标路径不是管道的名称。

5

没有进程打开要读取的事件监视器目标管道。

6

遇到意外的I/O错误。

用户响应

如果可能,修复原因代码描述的问题,并重新提交SET EVENT MONITOR语句。


sqlcode: -1614

sqlstate: 58030



参考文档:Tuning DB2 Universal Database Using the Statement Event Monitor



原文:  http://blog.csdn.net/rcom10002/article/details/6156256


文章转载自不畏过往不惧将来,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论