1回顶部 介绍 UNIX和Linux用户经常检查运行在服务器上的进程来进行问题分析,并检查服务器上被消耗的资源。这些信息不仅对解决问题和分析资源的系统管理员有用,而且对于开发高可用性和监视DB2进程以判断什么时候执行某种行为(例如数据库重新启动)或者执行必要的服务器错误恢复(failover)的错误恢复脚本都很重要。 2回顶部 看看通知和诊断日志 管理通知日志和诊断日志(db2diag.log)是系统管理员用于了解数据库活动和功能的重要工具。正常情况下它们包含DB2进程的信息,下面的例子显示了一个db2diag.log的条目:
在这个例子中,消息来源的进程ID号是78121。这个进程的名字是db2agent,并且它连接了叫做TEST的数据库。了解每个进程在做什么能帮助你了解系统管理通知日志和db2diag.log的内容。 DB2进程的模型 代理 代理可以认为是一个"工作程序",它执行所有的应用程序需要的数据库操作。有两种类型的DB2代理: ◆ 协调程序代理(db2agent) 协调程序代理代表应用程序协调工作,并且使用进程间通讯(interprocess communication,IPC)或者远程通讯协议与其它的代理通讯。所有的客户端应用程序连接请求,无论是本地的或远程的,都会分配一个相应的协调程序代理。 ◆ 子代理(db2agntp) 当允许intra_parallel数据库管理器配置参数时,协调程序代理把数据库请求分配给子代理(db2agntp)。这些代理为应用程序执行请求。一旦建立了协调程序代理,它就通过协调执行数据库请求的子代理,代表应用程序处理所有的数据库请求。 当某个代理或者子代理完成了自己的工作时它就变为空闲的。当某个子代理变为空闲时,它的名字从db2agntp变为db2agnta。 例如: db2agntp是活动的子代理,它正在为协调程序代理执行工作。这些进程只有允许内部分区并行性(intra-partition parallelism)时才存在。 db2agnta是空闲的子代理,它在过去的某个时候被协调程序代理使用。空闲代理位于代理池中。这些代理对于来自代表客户端程序的协调程序代理的请求是可用的。可用的代理数量依赖于数据库管理器的配置参数maxagents和num_poolagents。 3回顶部 本文的后面一部分将讲解其它类型的代理(例如并行回复代理,db2agnsc)。下面是显示DB2进程模型的两个图表。 图1中的每个圆圈代表引擎可分配单元(EDU),它是Linux/UNIX平台上的进程,Windows中的线程。 应用程序A(App A)和B(App B)都是运行在DB2服务器上的本地应用程序。当这些应用程序请求一个到数据库的CONNECT时,db2ipccm监听进程建立数据库管理器和应用程序之间的通讯。db2ipccm也使用一个协调程序代理EDU(db2agent)工作,它直接连接客户端应用程序来建立客户端应用程序和代理之间的共享内存通讯。一旦建立了该通讯,本地客户端的应用程序就连接到数据库了。 应用程序C(App C)是一个远程应用程序,它位于DB2服务器外的另一台计算机上。远程客户端通过db2tcpcm监听进程建立TCP/IP通讯。接着该db2tcpcm与db2agent一起工作,它成为应用程序的协调程序代理并把连接传递到这个代理。在这以后,协调程序代理联系远程客户端应用程序并且连接到数据库了。 4回顶部 图2与图1相似,但可用于分区的数据库。Node0000和Node0001代表两个不同的计算机,数据库的分区分别在它们上面。该进程与它们之间的交互作用与图1中的相同,但是有一些进程只能用于这样的环境。例如db2fcmd即快速通讯管理器(Fast Communication Manager)进程,它用于管理不同分区之间的通讯。下一部分的表格更仔细地说明了其它用于分区数据库的进程。 各个进程 下表按照功能列举了每个实例、每个数据库的所有DB2进程。注意下表中的有些进程没有按字母次序,而是基于功能分组。 5回顶部 表1:每个实例的进程--没有连接、没有活动的数据库 6回顶部 表2:每个实例和每个连接的进程 7回顶部 表3:每个实例和每个活动数据库的进程 |
正在阅读:深入了解DB2 Universal Database进程(1)深入了解DB2 Universal Database进程(1)
2004-04-01 13:26
出处:中国计算机报
责任编辑:sdq