DB2® 进程
所有 DB2 数据库服务器使用的进程
DB2 数据库服务器必须执行各种不同的任务,例如处理数据库应用程序请求或确保将日志记录写入磁盘。通常,每项任务都由一个独立的引擎可分派单元
采用多线程体系结构对于 DB2 数据库服务器而言有很多优点。由于同一进程 内的所有线程可以共享一些操作系统资源,因此,新线程需要的内存和操作系统资源比进程 要少。此外,在某些平台上,线程的上下文切换时间比进程
对于正在访问的每个数据库,将启动不同的 EDU 以处理各种数据库任务,例如预取、通信和日志记录。数据库代理程序是一类特殊的 EDU,创建它们是为了处理应用程序对数据库的请求。
通常,您可以依靠 DB2 数据库服务器来管理 EDU 集合。但是,也可以通过一些 DB2 工具来管理 EDU。例如,可以使用带有 -edus 选项的 db2pd
每个客户机应用程序连接都有一个对数据库执行操作的协调代理程序。协调代理程序 代表应用程序工作,并根据需要使用专用内存、进程
DB2 体系结构提供了一个防火墙,以使应用程序与 DB2 数据库服务器在不同的地址空间中运行( 图 1 )。 防火墙将数据库和数据库管理器与应用程序、存储过程和用户定义的函数(UDF)隔开。此防火墙有助于维护数据库中数据的完整性,这是因为,它将阻止应用程 序编程错误覆盖内部缓冲区或数据库管理器文件。此防火墙还提高了可靠性,原因是应用程序错误不会导致数据库管理器崩溃。
图 1. DB2 数据库系统的进程
客户机程序
客户机程序可以是远程程序,也可以是在数据库服务器所在机器上运行的本地程序。客户机程序首先通过通信侦听器与数据库联系。
侦听器
进程 间通信(IPC)侦听器( db2ipccm )。侦听器包括:
- db2ipccm
- db2tcpcm
- db2tcpdm
代理程序
将为所有来自本地或远程客户机程序(应用程序)的连接请求分配相应的协调代理程序(db2agent
在分区数据库环境或者已启用查询内并行性 的系统中,协调代理程序会将数据库请求分发给子代理程序(分别为 db2agntp 和 db2agnts )。与应用程序相关联但当前处于空闲状态的子代理程序名为 db2agnta
- 已通过别名连接到数据库;例如,db2agent (DATA1)
- 已连接到实例;例如 db2agent (user1)
DB2 数据库服务器还会将其他类型的代理程序(例如独立的协调代理程序或子协调代理程序)实例化,以便执行特定的操作。例如,独立的协调代理程序 db2agnti 用于运行事件监视器,而子协调代理程序 db2agnsc
空闲代理程序驻留在代理程序池中。这些代理程序可用于处理来自代表客户机程序运行的协调代理程序或来自代表现有协调代理程序运 行的子代理程序的请求。当存在大量应用程序工作负载时,配备大小适当的空闲代理程序池有助于提高性能。在这种情况下,可以根据需要立即使用空闲代理程序, 而不需要为每个应用程序连接分配全新的代理程序,后一种情况涉及创建线程以及分配并初始化内存和其他资源。DB2 数据库服务器自动管理空闲代理池的大小。
db2fmp
受保护方式进程 负责在防火墙外执行受防护的存储过程和用户定义的函数。 db2fmp 进程 始终是独立的进程 ,但可能是多线程进程
db2vend
这是代表 EDU 执行供应商代码的进程
数据库 EDU
- db2dlock ,用于死锁检测。在分区数据库环境中,使用另一个线程(db2glock )来协调 db2dlock EDU 从每个分区中收集的信息;db2glock
- db2hadrp
- db2hadrs
- db2lfr
- db2loggr
- db2loggw
- db2logmgr
- db2logts ,用于跟踪哪些表空间在哪些日志文件中有日志记录。此信息记录在数据库目录中的 DB2TSCHG.HIS
- db2lused
- db2pfchr
- db2pclnr
- db2redom ,用于重做主进程
- db2redow ,用于重做工作程序。在恢复期间,它按照重做主进程
- db2shred
- db2stmm
- db2taskd ,用于分发后台数据库任务。这些任务由名为 db2taskp
- db2wlmd
- 事件监视器线程的标识方式如下:
- db2evm%1 %2 (%3 )%1 可以是:
- g
- gp
- l
- lp
- t
- %2 可以是:
- i
- p
- 而 %3
- 备份和复原线程的标识方式如下:
- db2bm.%1 .%2 (备份和复原缓冲区操纵程序)和 db2med.%1 .%2 (备份和复原介质控制器),其中:
- %1
- %2
- 例如:db2bm.13579.2 标识具有 EDU 标识为 13579 的 db2agent 线程控制的第二个 db2bm
数据库服务器线程和进程
db2sysc ,在 Windows® 操作系统上为 db2syscs.exe )必须存在,这样数据库服务器才能工作。下列线程和进程 将执行各种任务:
- db2acd ,用于主管运行状况监视器、自动维护实用程序和管理任务调度程序的自主计算守护程序。此进程 以前称为 db2hmon
- db2aiothr
- db2alarm
- db2cart ,用于在 userexit
- db2disp
- db2fcms
- db2fcmr
- db2fmd
- db2fmtlg ,用于在 logretain 数据库配置参数处于启用状态并且 userexit
- db2licc
- db2panic
- db2pdbc
- db2resync ,扫描全局再同步列表的再同步代理进程
- db2sysc
- db2thcln
- db2wdog