首页 | IT新闻 | 硬件 | 操作系统 | 开发 | 网络编程 | 数据库 | 热门框架 | 网络安全 | 组网 | 建站指南 | 网页制作 | 特效 | 实用技巧 | 服务器 | 办公 | QQ | 探索 | 社区

  • 技术部落
  • 部落首页 > 数 据 库 > DB2 > 正文
  • 监控DB2活动之其他问题判断工具
      2007-12-5  来源:网络资源  编辑:Jsbulo  热度:

      db2mtrk 实用工具

      您已经了解了一些工具,可用于检查数据库在特定时间点的状态(快照监控器)、在特定事件或事务发生时收集数据(事件监控器)、查看为查询生成的数据访问计划(explain)。如果您正尝试在数据库环境中定位一个问题,则另外还有两种工具需要注意。第一种工具称为 db2mtrk 实用工具。

      db2mtrk 实用工具设计用于为实例、数据库和代理提供一份完整的内存状态报告。在执行时,db2mtrk 命令将生成以下关于内存池分配的信息:

    •   当前大小
    •   最大限度的大小(硬性限制)
    •   最大大小(高水位标)
    •   类型(表示内存池将使用的函数的标识符)
    •   分配池的代理(若内存池为专用)

      db2mtrk 实用工具可通过执行 db2mtrk 命令调用。该命令的基本语法是:

      db2mtrk

      <-i>

      <-d>

      <-p>

      <-m | -w>

      <-r [Interval] <[Count]> >

      <-v>

      <-h>

      其中,Interval 表示对 DB2 内存追踪器的后续调用之间等待的秒数;Count 表示重复调用内存追踪器的次数。

      db2mtrk 实用工具收集和显示信息的方法是通过在调用 db2mtrk 命令时指定的选项确定的。表 7 列出了各可用选项,并介绍了各选项的行为。

      表 7. db2mtrk 命令的可用选项

    选项 含义
    -i 显示实例级内存
    -d 显示数据库级内存
    -p 显示专用内存
    -m 显示各内存池的最大值
    -w 显示各内存池的高水位标值
    -r 重复模式
    -v 详细输出
    -h 显示帮助信息

      如果您希望获取实例级、数据库级和专用内存池分配信息,可执行 db2mtrk 命令,方法如下:

      db2mtrk -i -d -p

      在执行此命令时,您可能会看到如下所示的输出。

      db2mtrk 实用工具生成的输出示例

                        
    Memory for instance
    
       monh      other
       320.0K    8.1M
    
    Memory for database: SAMPLE
    
       utilh     pckcacheh catcacheh bph (1)   bph (S32K) bph (S16K) bph (S8K)
       64.0K     128.0K    64.0K     1.2M      704.0K     448.0K     320.0K
    
       bph (S4K) shsorth   lockh     dbh       other
       256.0K    0         320.0K    4.3M      128.0K
    
    Memory for agent 3632
    
       other     apph      appctlh
       64.0K     64.0K     64.0K
    
    Memory for agent 3184
    
       other     apph      appctlh
       64.0K     64.0K     64.0K
    
    Memory for agent 508
    
       other     apph      appctlh
       448.0K    64.0K     64.0K
    

      db2pd 实用工具

      db2pd 实用工具设计用于从适当的 DB2 数据库系统内存设置中检索信息,并生成一份详尽的报告,此报告可用于监控数据库系统(或一个数据库系统的任意组件)和/或对其进行故障排除。db2pd 实用工具可通过执行 db2pd 命令调用。此命令最简单的形式如下:

      db2pd

      <-inst>

      <-database [DatabaseName] ,... | -alldatabases>

      <-everything>

      <-full>

      其中,DatabaseName 是即将为其获取信息的一个或多个数据库的名称。

      若在执行 db2pd 命令时指定了 -everything 选项,db2pd 实用工具将为服务器上所有本地数据库分区服务器上的所有数据库的所有元素收集信息。若使用了 -full 选项,则所生成的信息将扩展到最大长度。(若未指定此选项,则生成的信息将被删节,以节省显示空间。)

      除了为数据库系统收集大量信息之外,您还可让 db2pd 实用工具集中收集特定领域的信息,只要在所执行的 db2pd 命令中包括以下任意过滤选项即可:

    •   -applications
    •   -fmp
    •   -agents
    •   -transactions
    •   -bufferpools
    •   -logs
    •   -locks
    •   -tablespaces
    •   -dynamic
    •   -static
    •   -fcm
    •   -memsets
    •   -mempools
    •   -memblocks
    •   -dbmcfg
    •   -dbcfg
    •   -catalogcache
    •   -sysplex
    •   -tcbstats
    •   -reorg
    •   -recovery
    •   -reopt
    •   -osinfo
    •   -storagepaths
    •   -pages

      例如,如果您希望获取关于与 SAMPLE 数据库相关的事务日志文件的信息,可像下面这样执行 db2pd 命令:

      db2pd -database SAMPLE -logs

      执行此命令时,您将看到如下所示的输出。

      db2pd 实用工具生成的输出示例

      Database Partition 0 -- Database SAMPLE -- Active -- Up 0 days 00:43:48

      Logs:

      Current Log Number 0

      Pages Written 0

      Method 1 Archive Status n/a

      Method 1 Next Log to Archive n/a

      Method 1 First Failure n/a

      Method 2 Archive Status n/a

      Method 2 Next Log to Archive n/a

      Method 2 First Failure n/a

      Address StartLSN State Size Pages Filename

      0x04BBD254 0x0000036B0000 0x00000000 1000 1000 S0000000.LOG

      0x04BBD2F4 0x000003A98000 0x00000000 1000 1000 S0000001.LOG

      0x04BBD394 0x000003E80000 0x00000000 1000 1000 S0000002.LOG

      在某些情况下,使用了这些过滤选项之一时,它又会具有自己的一组选项。