转数据库系统监控器_第1页
转数据库系统监控器_第2页
转数据库系统监控器_第3页
转数据库系统监控器_第4页
转数据库系统监控器_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【转】数据库系统监控器【转】数据库系统监控器2010-05-21 21:54数据库系统监控器数据库监控是一项重要的活动,若将其作为日常活动来执行,将连续提供数据库系统健康状况的反馈信息。正由于数据库监控是数据库管理的完整组成部分,DB2 9提供了一种称为数据库系统监控器的监控实用工具。尽管其名称数据库系统监控器似乎表示仅提供了一种监控工具,但实际上,数据库系统监控器由两种不同的工具组成,可用于捕获和返回系统监控信息:一个快照监控器和一个或多个事件监控器。快照监控器允许您捕获特定时间点的数据库状态图,而事件监控器在特定数据库事件发生时捕获并记录数据。这两种工具所收集的数据均存储在称为监控元素(或

2、数据元素)的实体中。所使用的各监控元素通过惟一的名称标识,且均设计用于容纳特定类型的信息。以下类型的元素用于存储监控数据:计数器(Counter)。计数器保存活动或事件已发生的次数。在监控器的整个生命周期中,计数器值逐渐增加;通常,计数器监控元素是可重置的。为某个数据库执行的SQL语句总数就是计数器元素的一个示例。计量器(Gauge)。计量器保存在特定时间点发生的活动或事件的次数。与计数器值不同,计量器值可增加,也可减少,计量器在给定时间点的值通常取决于数据库活动的级别。当前连接到某个数据库的应用程序数量就是计量器元素的一个示例。水位标(Watermark)。水位标表示自监控开始以来观测到的最

3、高(最大)或最低(最小)值。更新操作所影响的最大行数就是水位标元素的一个示例。信息(Information)。顾名思义,信息元素提供所执行的全部监控活动的引用类型细节。信息元素的示例包括缓冲池名称、数据库名称和别名、路径详细信息等。时间戳(Timestamp)。时间戳表示活动或事件发生的日期和时间。时间戳值以1970年1月1日后流逝的秒和微秒数形式提供。与数据库的第一个连接的建立日期和时间就是一个时间戳元素的示例。时间(Time)。时间元素保存执行一个活动或事件所花费的时间。时间值以自活动或事件开始以后流逝的秒和微秒数形式提供,有些时间元素是可重置的。执行一次排序操作所花费的时间就是一个时间元

4、素的示例。数据库系统监控器可利用上述元素的任意组合来捕获监控数据,一旦收集完成,即可使用一些方法为快照监控器和事件监控器展示所用各元素中存储的数据,您可以选择将收集到的所有数据存储在文件或数据库表中,在屏幕上查看,或使用定制应用程序进行处理。(数据库系统监控器使用自我描述的数据流将监控数据返回给客户机应用程序。使用快照监控应用程序,您可调用恰当的快照API,捕获快照,然后处理所返回的数据流;使用事件监控应用程序,您可准备好通过文件或指定管道接收所生成的数据,激活适当的事件监控器,并在接收到数据流时对其加以处理。)快照监控器快照监控器设计用于收集DB2 UDB实例及其控制的数据库在特定时间点(换

5、言之,就是在捕获到快照时)的相关状态信息。快照对于确定一个数据库系统的状态非常有用,若按固定时间间隔捕获,则可提供能用于观测发展趋势并识别潜在问题领域的宝贵信息。要捕获快照,可在DB2 Command Line Processor(CLP)中执行GET SNAPSHOT命令,方法是在查询中使用恰当的快照表函数或在C、C+应用程序中使用快照监控器API。此外,还可根据具体需求打造快照,以便返回特定类型的监控数据值(例如,可将一个快照配置为仅返回与缓冲池相关的信息)。快照监控器开关通常情况下,收集系统监控数据需要额外的处理开销。例如,为了计算SQL语句的执行时间,DB2 Database Mana

6、ger必须调用操作系统,获取SQL语句执行之前和之后的时间戳。此类系统调用的成本高昂。使用系统监控器的另外一个副作用就是所消耗的内存量大大增加-DB2 Database Manager要使用内存来存储为系统监控器所追踪的各监控元素收集的数据。为帮助最小化与收集系统监控信息相关的开销,可使用一组称为快照监控器开关的开关,控制在捕获快照时收集哪些信息,通过这些快照监控器开关的设置方式来确定所收集的信息类型与数量。各快照监控器开关都有两种设置:ON和OFF。将一个快照监控器开关设置为OFF时,受此开关控制的元素的监控信息不予收集。若开关设置为ON,则情况恰好相反。(切记,有大量监控信息不受开关控制,

7、无论快照监控器开关如何设置,这些信息总是会被收集。)表1列出了可用的快照监控器开关,还给出了各开关设置为ON时所收集的信息类型的描述。表1.快照监控器开关监控器组监控器开关DBM配置参数所提供的信息缓冲池BUFFERPOOL dft_mon_bufferpool缓冲池活动的数量(换言之,即所执行的读取和写入操作的数量,以及各次读/写操作所用时间)。锁LOCK dft_mon_lock具有的锁数量,以及遇到的死锁循环数量。排序SORT dft_mon_sort所执行的排序操作数量、使用的堆数量、遇到的溢出数、排序性能。SQL语句STATEMENT dft_mon_stmt SQL语句处理开始时间

8、、SQL语句处理结束时间、SQL语句标识。表TABLE dft_mon_table所执行的表活动数量,例如读取的行数、写入的行数等。时间戳TIMESTAMP dft_mon_timestamp时间和时间戳信息。事务UOW dft_mon_uow事务开始时间、事务结束时间以及事务的完成状态。默认情况下,表1中的所有开关均设置为OFF,TIMESTAMP开关是个例外,其默认设置为ON,并在一个实例初次启动时初始化。查看当前快照监控器开关设置前面已经提到,在捕获快照时,所收集的信息类型和数量在某种程度上是可以控制的-通过设置快照监控器开关实现。在您捕获快照之前,应了解哪些快照监控器开关已打开,而哪些

9、快照监控器开关依然是关闭的,这一点非常重要。如何才能了解各可用快照监控器开关的当前设置呢?最简单的方法就是在DB2 Command Line Processor(CLP)中执行GET MONITOR SWITCHES命令。此命令的基本语法是:GET MONITOR SWITCHES其中的PartitonNum标识要为其获取并显示可用快照监控器开关状态的数据库分区(在多分区数据库环境中)。注意:尖括号()中的参数是可选的;方括号()中的参数或选项是必需的;而逗号后接省略号(.)则表示之前的参数可重复使用多次。如果您希望为单分区数据库获取并显示快照监控器开关状态,可执行GET MONITOR SW

10、ITCHES命令,方式如下:GET MONITOR SWITCHES在Command Line Processor中执行此命令时,您应看到形式如下的输出结果。GET MONITOR SWITCHES命令的输出Monitor Recording Switches Switch list for db partition number 0Buffer Pool Activity Information(BUFFERPOOL)=OFF Lock Information(LOCK)=OFF Sorting Information(SORT)=OFF SQL Statement Information(

11、STATEMENT)=OFF Table Activity Information(TABLE)=OFF Take Timestamp Information(TIMESTAMP)=ON 06-12-2006 10:30:00.028810 Unit of Work Information(UOW)=OFF观察上述输出后,您会立即注意到TIMESTAMP快照监控器开关已打开,而其他所有开关均为关闭。紧接于TIMESTAMP监控器开关状态之后的时间戳值可以告诉您TIMESTAMP监控器开关被打开的准确日期和时间(本例中为2006年6月12日上午10:30)。更改快照监控器开关的状态了解哪些快照监

12、控器开关被设置为ON、哪些快照监控器开关被设置为OFF之后,您可能会发现,在开始监控过程之前,有必要更改一个或多个开关的设置。快照监控器开关设置可在实例级更改,方法是通过UPDATE DATABASE MANAGER CONFIGURATION命令修改适当的DB2 Database Manager配置参数(参见表1)。另一方面,快照监控器开关设置也可在应用程序级更改,方法是执行UPDATE MONITOR SWITCHES命令。此命令的基本语法是:UPDATE MONITOR SWITCHES USINGSwitchIDON|OFF,.其中的SwitchID表示要为之更改状态的一个或多个快照监

13、控器开关。此参数可包含以下任意或全部值:BUFFERPOOL、LOCK、SORT、STATEMENT、TABLE、TIMESTAMP以及UOW。如果您希望在应用程序级将LOCK快照监控器开关的状态更改为ON,可执行UPDATE MONITOR SWITCHES命令,如下所示:UPDATE MONITOR SWITCHES USING LOCKS ON类似地,如果您希望将BUFFERPOOL快照监控器开关设置为OFF,也可执行一条UPDATE MONITOR SWITCHES命令,如下所示:UPDATE MONITOR SWITCHES USING BUFFERPOOL OFF在实例级设置快照监

14、控器开关(使用UPDATE DATABASE MANAGER CONFIGURATION命令)将影响到受此实例控制的所有数据库(也就是说,所有与该实例控制的一个数据库建立了连接的应用程序都将继承实例配置中的开关设置)。此外,在实例级做出的快照监控器开关设置在实例重启后依然保留。在应用程序级设置快照监控器开关(使用UPDATE MONITOR SWITCHES命令)仅影响到与这一个应用程序交互的数据库。此外,开关设置仅在此应用程序的生命周期内持续。捕获快照监控数据只要数据库被激活或与数据库的连接建立起来,快照监控器立即开始收集监控数据。但在所收集到的任何数据能够被查看之前,必须捕获快照(快照实际

15、上就是一张关于所用监控元素在特定时间点的形式的图片)。可通过在应用程序中嵌入db2GetSnapshot()API捕获快照,也可通过执行GET SNAPSHOT命令捕获。此命令的基本语法是:GET SNAPSHOT FORDATABASE MANAGER|DB MANAGER|DBM|ALL DATABASES|ALL APPLICATIONS|ALL BUFFERPOOLS|ALL REMOTE_DATABASES|ALL REMOTE_APPLICATIONS|ALL ONDatabaseAlias|DATABASE ONDatabaseAlias|APPLICATIONS ONDatab

16、aseAlias|TABLES ONDatabaseAlias|TABLESPACES ONDatabaseAlias|LOCKS ONDatabaseAlias|BUFFERPOOLS ONDatabaseAlias|DYNAMIC SQL ONDatabaseAlias其中的DatabaseAlias表示将为其收集快照监控器信息的那个数据库被指派的别名。在捕获快照时,如果您希望其中仅包含在与PAYROLL数据库交互的应用程序所拥有的锁上收集的数据,可通过执行以下命令来实现:GET SNAPSHOT FOR LOCKS ON PAYROLL此命令产生的输出结果应与以下示例类似。(务必牢记,这

17、只是一个简单的示例。实际的监控环境往往会生成大批数据。)GET SNAPSHOT命令输出示例Database Lock Snapshot Database name=PAYROLL Database path=C:DB2NODE0000SQL00002Input database alias=PAYROLL Locks held=2 Applications currently connected=1 Agents currently waiting on locks=0 Snapshot timestamp=06-12-2004 08:39:40.750316 Application han

18、dle=8 Application ID=*LOCAL.DB2.00E 286133931 Sequence number=0001 Application name=db2bp.exe CONNECT Authorization ID=DB2ADMIN Application status=UOW Waiting Status change time=Not Collected Application code page=1252 Locks held=2 Total wait time(ms)=Not Collected List Of Locks Lock Name=0x94928D84

19、8F9F949E7B 89505241 Lock Attributes=0x 00000000 Release Flags=0x 40000000 Lock Count=1 Hold Count=0 Lock Object Name=0 Object Type=Internal PLock Mode=S Lock Name=0x96A09A989DA09A7D8E8A6C7441 Lock Attributes=0x 00000000 Release Flags=0x 40000000 Lock Count=1 Hold Count=0 Lock Object Name=0 Object Ty

20、pe=Internal PLock Mode=S如您所见,GET SNAPSHOT命令可用于捕获几种不同类型的监控数据,包括:DB2 Database Manager实例数据受一个实例控制的所有活动数据库的数据库数据应用程序数据缓冲池活动数据表空间数据表数据锁数据(关于具有的所有锁的信息)动态SQL数据(SQL语句缓存器在某个时间点所具有的SQL语句的相关信息)或许您已注意到,可用快照监控器开关与捕获快照时可收集的监控数据的各种类型之间有着直接关系。若将特定快照监控器开关关闭,再捕获与此开关相关的监控元素的快照,则所捕获到的监控数据将不包含任何值。(在前面的数据中,所列出的部分值为Not Co

21、llected,这正是因为其对应的快照监控器开关已关闭。此外,若在捕获快照时未获得任何锁,则Locks held的值将为0,List of Locks信息则根本不会出现。)使用SQL捕获快照监控数据在DB2 UDB的较早版本中,捕获快照监控数据的惟一途径就是执行GET SNAPSHOT命令或在应用程序中调用其相应的API。在DB2 UDB V8.1中,引入了通过构建查询捕获快照监控数据的能力。这种方法依赖于20个特殊快照监控器表函数,在V9.1中,这些函数的作用已被弱化。现在,可使用一组全新的SQL例程来访问特殊管理视图中存储的数据,通过这种方法来获取快照监控数据。表2介绍了这些例程和视图。表

22、2.快照管理SQL例程和视图管理视图例程描述APPLICATIONS N/A这一管理视图包括连接的数据库应用程序的相关信息。APPL_PERFORMANCE N/A这一管理视图包含选定行与各应用程序读取行数的比率。BP_HITRATIO N/A这一管理视图包含缓冲池的命中率,包括总体、数据和索引。BP_READ_IO N/A这一管理视图包含缓冲池的读取性能信息。BP_WRITE_IO N/A这一管理视图包含缓冲池的写入性能信息。CONTAINER_UTILIZATION N/A这一管理视图包含表空间容器和利用率的相关信息。LOCKS_HELD N/A这一管理视图包含当前具有的锁的相关信息。LO

23、CKWAITS N/A这一管理视图包含等待授权的锁的信息。LOG_UTILIZATION N/A这一管理视图包含关于当前连接的数据库的日志利用情况的信息。LONG_RUNNING_SQL N/A这一管理视图包含当前连接的数据库中运行时间最长的SQL语句的相关信息。QUERY_PREP_COST N/A这一管理视图包含一个SQL语句列表,以及关于各语句准备所需时间的信息。N/A SNAP_WRITE_FILE此过程将系统快照数据写入实例目录的tmp子目录中的一个文件。SNAPAGENT SNAP_GET_AGENT该管理视图和表函数返回应用程序快照的代理信息,特别是agent逻辑数据组。SNAP

24、AGENT_MEMORY_POOL SNAP_GET_AGENT_MEMORY_POOL该管理视图和表函数返回代理级的内存使用信息。SNAPAPPL SNAP_GET_APPL该管理视图和表函数返回应用程序快照的应用程序信息,特别是appl逻辑数据组。SNAPAPPL_INFO SNAP_GET_APPL_INFO该管理视图和表函数返回应用程序快照的应用程序信息,特别是appl_info逻辑数据组。SNAPBP SNAP_GET_BP该管理视图和表函数返回缓冲池快照的缓冲池信息,特别是bufferpool逻辑数据组。SNAPBP_PART SNAP_GET_BP_PART该管理视图和表函数返回

25、缓冲池快照的缓冲池信息,特别是bufferpool_nodeinfo逻辑数据组。SNAPCONTAINER SNAP_GET_CONTAINER_V91该管理视图和表函数返回tablespace_container逻辑数据组的表空间快照信息。SNAPDB SNAP_GET_DB_V91该管理视图和表函数返回数据库(dbase)和数据库存储(db_storaeg_group)逻辑分组的快照信息。SNAPDB_MEMORY_POOL SNAP_GET_DB_MEMORY_POOL该管理视图和表函数返回数据库级内存使用情况的信息,仅用于UNIX(R)平台。SNAPDBM SNAP_GET_DMB该管

26、理视图和表函数返回快照监控器DB2数据库管理器(dbm)逻辑分组信息。SNAPDBM_MEMORY_POOL SNAP_GET_DBM_MEMORY_POOL该管理视图和表函数返回数据库管理器级的内存使用情况信息。SNAPDETAILLOG SNAP_GET_DETAILLOG_V91该管理视图和表函数返回detail_log逻辑数据组的快照信息。SNAPDYN_SQL SNAP_GET_DYN_SQL_V91该管理视图和表函数返回dynsql逻辑数据组的快照信息。SNAPFCM SNAP_GET_FCM该管理视图和表函数返回数据库管理器快照的快速通信管理器(FCM)相关信息,特别是fcm逻辑

27、数据组。SNAPFCM_PART SNAP_GET_FCM_PART该管理视图和表函数返回数据库管理器快照的快速通信管理器(FCM)相关信息,特别是fcm_node逻辑数据组。SNAPHADR SNAP_GET_HADR该管理视图和表函数返回数据库快照的高可用性灾难恢复信息,特别是hadr逻辑数据组。SNAPLOCK SNAP_GET_LOCK该管理视图和表函数返回关于锁的快照信息,特别是lock逻辑数据组。SNAPLOCKWAIT SNAP_GET_LOCKWAIT该管理视图和表函数返回管理锁等待的快照信息,特别是lockwait逻辑数据组。SNAPSTMT SNAP_GET_STMT该管理

28、视图和表函数返回应用程序快照的语句信息。SNAPSTORAGE_PATHS SNAP_GET_STORAGE_PATHS该管理视图和表函数从db_storage_group逻辑数据组中为数据库返回一个自动存储路径列表,特别还包括各存储路径的文件系统信息。SNAPSUBSECTION SNAP_GET_SUBSECTION该管理视图和表函数返回关于应用程序子段的信息,也就是子段逻辑监控分组。SNAPSWITCHES SNAP_GET_SWITCHES该管理视图和表函数返回关于数据库快照开关状态的信息。SNAPTAB SNAP_GET_TAB_V91该管理视图和表函数返回table逻辑数据组中的快

29、照信息。SNAPTAB_REORG SNAP_GET_TAB_REORG该管理视图和表函数返回表重组信息。SNAPTBSP SNAP_GET_TBSP_V91该管理视图和表函数返回tablespace逻辑数据组的快照信息。SNAPTBSP_PART SNAP_GET_TBSP_PART_V91该管理视图和表函数返回tablespace_nodeinfo逻辑数据组的快照信息。SNAPTBSP_QUIESCER SNAP_GET_TBSP_QUIESCER该管理视图和表函数返回表空间快照的quiescer信息。SNAPTBSP_RANGE SNAP_GET_TBSP_RANGE该管理视图和表函数返

30、回一个range快照的信息。SNAPUTIL SNAP_GET_UTIL该管理视图和表函数返回utility_info逻辑数据组在实用工具方面的快照信息。SNAPUTIL_PROGRESS SNAP_GET_UTIL_PROGRESS该管理视图和表函数返回关于实用工具进展的信息,特别是progress逻辑数据组。TBSP_UTILIZATION N/A这一管理视图中包含表空间配置和利用率信息。TOP_DYNAMIC_SQL N/A这一管理视图中包含可按执行次数、平均执行时间、排序次数或各语句分类排序的顶级动态SQL语句。举例来说,如果您希望为当前连接的数据库获取锁信息,可执行类似于下面这样的查询:SELECT AGENT_ID,LOCK_OBJECT_TYPE,LOCK_MODE,LOCK_STATUS FROM SYSIBMADM.SNAPLOCK SNAP_GET_LOC

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论