9.1.快照监视器(Snapshot monintor) 9.1.1 两种方法设置监视器的开关:
db2 update dbm cfg using DFT_MON_SORT on;
db2 update monintor switches SORT on;
组别 | 所提供的信息 | 监视器开关 | DBM参数 |
排序 | 所用堆的数目、溢出、排序性能 | SORT | DFT_MON_SORT |
锁定 | 保持锁定的数目、死锁的数目 | LOCK | DFT_MON_LOCK |
表 | 测量活动(读行,写行) | TABLE | DFT_MON_TABLE |
缓冲区 | 读和写的次数,所用时间 | BUFFERPOOL | DFT_MON_BUFPOOL |
工作单元 | 开始时间、结束时间、完成时间 | UOW | DFT_MON_UOW |
SQL语句 | 开始时间、结束时间、语句标识 | STATEMENT | DFT_MON_STMP |
9.1.2 GET SNAPSHOT 命令的句法
db2 get snapshot for dbm;
db2 get snapshot for database on dbname;
db2 get snapshot for tablespaces/bufferpools/tables/locks/applications/dynamic sql on dbname;
9.1.3 使用表函数捕获快照:
db2 select * from Table ([FunctionName]([DBName],[PartitionNum]) )AS [CorrelationName]
db2 "select * from Table (SNAPSHOT_LOCK(maxdb71,-1)) AS T";
9.2 DB2PD
db2pd是用于监视各种DB2数据库活动以及故障排除的监控工具,ta的运行速度比较快,因为它不需要获取任何锁,并且在引擎资源以外运行(这意味着它甚至能在一个挂起的引擎上工作)。
9.2.1 监控DB2版本和系统信息:db2pd -version -osinfo
分析锁等待情形所需的带有选项的单个db2pd调用:
db2pd -db maxdb71 -locks wait showlocks -transactions -agents -applications -dynamic -file db2pd.out -repeat 15 40
-wait:如果指定此选项,db2pd只会显示事物当前正在等待的锁,以及对等待情形负责的锁;
-showlocks:用于将锁名称扩展成有意义的解释;
-transactions:用于将事务句柄映射到应用程序;
-agents:用于获得代表应用程序运行的代理的信息;
-applications:用于获得每个应用程序的更多信息;
-dynamic:该选项显示数据库动态语句缓存的内容;
-file:表明叫db2pd的输出写入的文件中;
-repeat:重复执行的间隔时间和次数,这里是每15秒执行一次,执行40次。
9.2.2 每当出现锁超时时启动db2cos脚本:db2pdcfg -catch locktimeout count=1 也可以使用SQL错误码和原因码db2pdcfg -catch 911,68 count=1
-catch:表明自动调用db2cos脚本的故障和事件。
db2pdcfg -catch clear
9.2.3 使用db2diag实用程序过滤db2diag.log文件:db2diag -g funcname:=pdErrorCatch
9.3 事件监视器(Event Monitor)
使用事件监视器的方法:
(1)创建一个事件监视器,写入文件:create event monitor evmname for eventtype write to file 'directory'
create event monitor SQLCOST for deadlocks,statements write to '/db2db/event'
如果写入表的话为create event monitor SQLCOST for deadlocks write to TABLE.
(2)激活事件监视器:db2 "set event monitor SQLCOST state=1" ;
(3)运行要监视的应用程序;
(4)取消激活事件监视器:db2 "set event monitor SQLCOST state=0",db2 terminate;
(5)使用DB2提供的工具db2evmon工具格式化事件监视器的原始数据:
db2evmon -db dbname -evm SQLCOST > sqltrace.txt
(6)浏览整个已格式化的文件,寻找显著大的成本数:more sqltrace.txt
9.4 db2mtrk 是用于在数据库中进行内存跟踪的工具,可以用于查看实例、数据库、代理进程当前对内存的使用情况。
dbmtrk -d -i -p -m -w -r interval count -v -h
-p:显示代理进程专业的内存使用率;
-m:显示最大的内存使用上线;
-w:显示使用过程中内存达到的最大值,即watermark;
-r:repeat 用于重复执行 interval值重复执行的间隔,count 次数 例如 -r 1 5指的是执行五次每次间隔1秒。
-v:详细输出
-h:help
9.5 活动监视器(Activity Monitor)图形化的
它使用各种SQL函数和过程获得性能数据,对系统进行分析。
添加新评论1 条评论
2013-03-28 09:18