http://www.ibm.com/developerworks/cn/data/library/techarticles/0304chong/0304chong.html
級(jí)別: 初級(jí)
Dwaine Snow, DB2 UDB 和 Informix IDS 產(chǎn)品經(jīng)理, IBM 多倫多實(shí)驗(yàn)室
Raul F. Chong, DB2 UDB 顧問(wèn), IBM 多倫多實(shí)驗(yàn)室
2001 年 2 月 01 日
本文描述了 DB2 UDB 在 Linux、UNIX 和 Windows 上使用的進(jìn)程,討論了為什么您需要理解這些進(jìn)程,還詳述了它們的功能。
簡(jiǎn)介
UNIX 和 Linux 用戶通常會(huì)檢查運(yùn)行在其服務(wù)器上的進(jìn)程,以執(zhí)行問(wèn)題分析及檢查服務(wù)器中消耗的資源。該信息不僅對(duì)執(zhí)行問(wèn)題和資源分析的管理員有用,而且對(duì)于那些開發(fā)高度可用性和故障轉(zhuǎn)移腳本(這些腳本監(jiān)控 DB2 進(jìn)程,以確定何時(shí)需要進(jìn)行諸如數(shù)據(jù)庫(kù)重新啟動(dòng)或服務(wù)器故障轉(zhuǎn)移之類的操作)的人也很有用。
如果您正在使用 AIX,則可以使用命令 ps -ef
檢查進(jìn)程。在 Solaris 和 HP-UX 上, ps -ef
將只顯示所有服務(wù)器端進(jìn)程(例如:代理程序、記錄器、頁(yè)面清除程序和預(yù)取程序)的 db2sysc 進(jìn)程(主 DB2 引擎進(jìn)程)。如果您正在使用 Solaris 或 HP-UX,利用命令 /usr/ucb/ps -axw
您可以看到這些服務(wù)器端進(jìn)程。這兩種版本的 ps
命令都可以在 Linux 上使用。
當(dāng)在運(yùn)行 DB2 通用數(shù)據(jù)庫(kù)客戶機(jī)或服務(wù)器軟件的計(jì)算機(jī)上執(zhí)行該命令時(shí),您可能會(huì)看到列出了幾個(gè) DB2 進(jìn)程。本文的目的是記錄這些進(jìn)程,并且解釋它們的作用以及它們何時(shí)可能會(huì)運(yùn)行。盡管手冊(cè) DB2 UDB V8 Administration Guide - Performance 的第 2 章記錄了大多數(shù)重要的進(jìn)程,但該列表并不完整。通過(guò)閱讀本文,您將會(huì)理解每個(gè) DB2 進(jìn)程,當(dāng)您看到那些進(jìn)程時(shí),您會(huì)開始明白 DB2 正在執(zhí)行什么操作。
請(qǐng)注意,DB2 在 Windows 上工作方式的實(shí)現(xiàn)與基于 Linux 和 UNIX 環(huán)境的實(shí)現(xiàn)稍有不同。在 Windows 中,只有一個(gè)進(jìn)程(db2sysc),在該進(jìn)程下的每個(gè)引擎分派單元(engine dispatchable unit,EDU)都被作為線程來(lái)實(shí)現(xiàn)。盡管本文討論的是進(jìn)程,但是在 Windows 環(huán)境中應(yīng)當(dāng)把它們看成線程。通過(guò) Windows 任務(wù)管理器(Task Manager),您將能夠看到每個(gè)實(shí)例的 db2sysc 進(jìn)程(db2syscs.exe)。還將顯示其它 Windows 服務(wù)/進(jìn)程,我們將在本文中解釋它們是什么。
警告!請(qǐng)勿直接干預(yù)正常 DB2 環(huán)境中的 DB2 進(jìn)程。在 Linux 或 UNIX 中利用 kill -9
命令殺死 DB2 進(jìn)程可能會(huì)導(dǎo)致 DB2 出現(xiàn)異常行為。例如,殺死 db2sysc 進(jìn)程將使整個(gè) DB2 實(shí)例停止運(yùn)行。本文旨在幫助您理解進(jìn)程,而不是直接操作它們。
為什么研究 DB2 進(jìn)程?
我們的個(gè)人經(jīng)驗(yàn)已表明這方面的知識(shí)很有價(jià)值,并且我們拜訪的客戶也向我們尋求這類信息。還不相信嗎?看一看下面的實(shí)際方案,并且親眼看看如何通過(guò)檢查在系統(tǒng)上運(yùn)行的 DB2 進(jìn)程來(lái)解決問(wèn)題:
方案 1:罕見的緩沖池頁(yè)面的清除
一個(gè)運(yùn)行電子商務(wù)(eCommerce)站點(diǎn)并使用 DB2 作為數(shù)據(jù)庫(kù)服務(wù)器的客戶報(bào)告說(shuō),在一整天里,數(shù)據(jù)庫(kù)對(duì)應(yīng)用程序請(qǐng)求的響應(yīng)時(shí)間會(huì)不時(shí)地變得很長(zhǎng)。數(shù)據(jù)庫(kù)快照未顯示當(dāng)時(shí)有任何異常發(fā)生。通過(guò)檢查服務(wù)器上進(jìn)程在其中某一時(shí)刻的 CPU 使用情況,我們可以確定 I/O 清除程序(db2pclnr)消耗了超過(guò) 90% 的 CPU 時(shí)間。隨后通過(guò)研究 I/O 清除程序觸發(fā)器并對(duì)其進(jìn)行相應(yīng)的調(diào)優(yōu),我們消除了這種情況,使得電子商務(wù)站點(diǎn)每天可以處理的吞吐量提高了 50% 以上。
方案 2:真相大白
在拜訪 IBM 的一家業(yè)務(wù)合作伙伴以進(jìn)行一些 DB2 性能調(diào)優(yōu)工作時(shí),我們碰到了查詢響應(yīng)時(shí)間全面延長(zhǎng)的問(wèn)題。除了常規(guī)的程序之外,顯示應(yīng)用程序列表的命令并未顯示當(dāng)時(shí)有任何其它程序在運(yùn)行。在獲得 DB2 快照之前,我們看了一下運(yùn)行在 DB2 服務(wù)器上的 DB2 進(jìn)程,發(fā)現(xiàn) db2rebal 進(jìn)程正在運(yùn)行。當(dāng)將某個(gè)容器添加到 DMS 表空間時(shí),就會(huì)使用該進(jìn)程執(zhí)行數(shù)據(jù)的重新均衡工作。客戶“承認(rèn)”,那天的早些時(shí)候他將一個(gè)容器添加到了包含 40 GB 表的表空間。一旦重新均衡工作完成,查詢響應(yīng)時(shí)間恢復(fù)如初。
揭開通知和診斷日志的廬山真面目
管理通知日志和診斷日志( db2diag.log
)是重要的工具,管理員可以使用這些工具來(lái)理解數(shù)據(jù)庫(kù)的活動(dòng)和功能。這些日志通常包含有關(guān) DB2 進(jìn)程的信息,如下面取自 db2diag.log
項(xiàng)的示例所示:
2000-03-06-11.53.18.001160 Instance:myInst Node:000
PID:78121(db2agent (TEST)) TID:352
Appid:*LOCAL.payroll.000306140834
lock_manager sqlplrq Probe:111 Database:SAMPLE
DIA9999E An internal return code occurred. Report the following:
"0xFFFFE10E".
|
在該示例中,消息來(lái)自進(jìn)程標(biāo)識(shí)號(hào)為 78121 的進(jìn)程。該進(jìn)程的名稱是 db2agent,并與名為 TEST 的數(shù)據(jù)庫(kù)相連。理解進(jìn)程的功能有助于您了解管理通知日志和 db2diag.log
中各項(xiàng)的意義。
DB2 進(jìn)程模型
盡管 DB2 Administration Guide - Performance 手冊(cè)中介紹了 DB2 進(jìn)程模型,但是本文還是將對(duì)其做一下簡(jiǎn)要概述。首先說(shuō)明 代理程序(agent)的概念。
代理程序
代理程序可被認(rèn)為是一個(gè)代表應(yīng)用程序執(zhí)行所有數(shù)據(jù)庫(kù)操作的“工作程序”。DB2 代理程序主要有兩種:
- 協(xié)調(diào)程序代理程序(Coordinator Agent)(db2agent)
協(xié)調(diào)程序代理程序代表應(yīng)用程序協(xié)調(diào)工作,并使用進(jìn)程間通信(IPC)或遠(yuǎn)程通信協(xié)議與其它代理程序進(jìn)行通信。所有來(lái)自客戶機(jī)應(yīng)用程序的連接請(qǐng)求,無(wú)論是本地還是遠(yuǎn)程的,都分配了相應(yīng)的協(xié)調(diào)程序代理程序。
- 子代理程序(Subagent)(db2agntp)
如果啟用了 intra_parallel 數(shù)據(jù)庫(kù)管理器配置參數(shù),協(xié)調(diào)程序代理程序就會(huì)把數(shù)據(jù)庫(kù)請(qǐng)求分發(fā)給子代理程序(db2agntp)。這些代理程序執(zhí)行應(yīng)用程序的請(qǐng)求。一旦創(chuàng)建了協(xié)調(diào)程序代理程序,通過(guò)協(xié)調(diào)對(duì)數(shù)據(jù)庫(kù)執(zhí)行請(qǐng)求的子代理程序(db2agent),協(xié)調(diào)程序代理程序代表其應(yīng)用程序處理所有數(shù)據(jù)庫(kù)請(qǐng)求。
當(dāng)某個(gè)代理程序或子代理程序完成其任務(wù)時(shí),它就轉(zhuǎn)為空閑狀態(tài)。當(dāng)子代理程序處于空閑狀態(tài)時(shí),其名稱從 db2agntp 變?yōu)?db2agnta。
例如:
db2agntp進(jìn)程是活動(dòng)的子代理程序,它們當(dāng)前正在執(zhí)行協(xié)調(diào)程序代理程序的工作。僅當(dāng)啟用了分區(qū)內(nèi)并行性時(shí),這些進(jìn)程才存在。
db2agnta進(jìn)程是空閑的子代理程序,協(xié)調(diào)程序代理程序過(guò)去曾使用過(guò)它們。
空閑代理程序駐留在代理程序池中。這些代理程序可用于來(lái)自代表客戶機(jī)程序進(jìn)行操作的協(xié)調(diào)程序代理程序,或來(lái)自代表現(xiàn)有協(xié)調(diào)程序代理程序進(jìn)行操作的子代理程序的請(qǐng)求。可用的代理程序數(shù)取決于數(shù)據(jù)庫(kù)管理器配置參數(shù) maxagents和 num_poolagents。
稍后我們將在本文中描述其它代理程序類型,如并行恢復(fù)代理程序(db2agnsc)。
下面兩幅圖顯示了 DB2 進(jìn)程模型。
圖 1. 無(wú)連接集中的 DB2 進(jìn)程模型(適用于非分區(qū)數(shù)據(jù)庫(kù))
圖 1中的圓圈表示引擎分派單元(EDU),在 Linux/UNIX 平臺(tái)上稱為進(jìn)程,而在 Windows 上稱為線程。
應(yīng)用程序 A(App A)和 B(App B)是本地應(yīng)用程序,運(yùn)行它們的機(jī)器與 DB2 服務(wù)器所駐留的機(jī)器是同一臺(tái)機(jī)器。當(dāng)這些應(yīng)用程序發(fā)出連接數(shù)據(jù)庫(kù)的 CONNECT 命令時(shí),db2ipccm 偵聽器進(jìn)程建立數(shù)據(jù)庫(kù)管理器和應(yīng)用程序之間的通信。db2ipccm 還將與協(xié)調(diào)程序代理程序 EDU(db2agent)一起工作,后者直接與客戶機(jī)應(yīng)用程序進(jìn)行聯(lián)系,以建立客戶機(jī)應(yīng)用程序和協(xié)調(diào)程序之間共享內(nèi)存的通信。一旦建立了這種通信,本地客戶機(jī)上的應(yīng)用程序就被連接到數(shù)據(jù)庫(kù)。
應(yīng)用程序 C(App C)是一個(gè)遠(yuǎn)程應(yīng)用程序,它所駐留的機(jī)器與用于 DB2 服務(wù)器的機(jī)器不同。遠(yuǎn)程客戶機(jī)通過(guò) db2tcpcm 偵聽器進(jìn)程建立 TCP/IP 通信。然后 db2tcpcm 與 db2agent 一起工作,后者成為應(yīng)用程序的協(xié)調(diào)程序代理程序,并將連接傳遞給該代理程序。之后,協(xié)調(diào)程序代理程序與遠(yuǎn)程客戶機(jī)應(yīng)用程序進(jìn)行聯(lián)系,并被連接到數(shù)據(jù)庫(kù)。
圖 2. 無(wú)連接集中的 DB2 進(jìn)程模型(適用于分區(qū)數(shù)據(jù)庫(kù))
圖 2與圖 1 類似,但是它適用于分區(qū)數(shù)據(jù)庫(kù)。Node0000 和 Node0001 表示兩臺(tái)不同的機(jī)器,這兩臺(tái)機(jī)器上分別駐留了一部分?jǐn)?shù)據(jù)庫(kù)。它們之間的進(jìn)程和交互作用與圖 1 中描述的相同;但是,有其它一些僅適用于該環(huán)境的進(jìn)程。例如,db2fcmd 進(jìn)程是快速通信管理器(Fast Communication Manager)進(jìn)程,用于管理不同分區(qū)之間的通信。下一節(jié)中的表將更詳細(xì)地描述適用于分區(qū)數(shù)據(jù)庫(kù)的其它進(jìn)程。
進(jìn)程
以下各表分別根據(jù)每個(gè)實(shí)例、每個(gè)數(shù)據(jù)庫(kù)以及按照功能列出了所有 DB2 進(jìn)程。請(qǐng)注意,下表中的一些進(jìn)程并不是按照字母順序列出的,而是根據(jù)功能進(jìn)行分組的。如果您希望以字母順序查找進(jìn)程,請(qǐng)參閱下面的 表 7。
表 1. 每個(gè)實(shí)例的進(jìn)程 — 無(wú)連接,無(wú)活動(dòng)的數(shù)據(jù)庫(kù)
進(jìn)程名 |
描述 |
適用范圍 |
db2cart |
確定何時(shí)歸檔日志文件,并調(diào)用用戶出口來(lái)執(zhí)行實(shí)際的歸檔工作。每個(gè)實(shí)例有一個(gè) db2cart 進(jìn)程,但是僅當(dāng)實(shí)例中至少有一個(gè)數(shù)據(jù)庫(kù)啟用了 USEREXIT 時(shí),該進(jìn)程才運(yùn)行。 |
所有 |
db2chkau |
由 DB2 審計(jì)工具使用以將一些項(xiàng)記錄到審計(jì)日志。僅當(dāng)啟用了審計(jì)時(shí)該進(jìn)程才是活動(dòng)的。 |
所有 |
db2ckpw |
用于檢查 DB2 服務(wù)器上的用戶標(biāo)識(shí)和密碼。由于 DB2 依賴于操作系統(tǒng)級(jí)別的認(rèn)證,因此,當(dāng)某個(gè)用戶或應(yīng)用程序連接到服務(wù)器上的數(shù)據(jù)庫(kù)時(shí),使用該進(jìn)程驗(yàn)證用戶標(biāo)識(shí)和密碼。當(dāng)將 AUTHENTICATION 設(shè)置為 SERVER 時(shí),或者當(dāng)連接是從非安全的操作系統(tǒng)建立的時(shí)候,就會(huì)進(jìn)行認(rèn)證。 |
UNIX/Linux |
db2disp |
DB2 代理程序分派器進(jìn)程。當(dāng)啟用了連接集中時(shí),該進(jìn)程在分配給應(yīng)用程序的邏輯代理程序和可用的協(xié)調(diào)代理之間分派應(yīng)用程序連接。
僅當(dāng)啟用了連接集中時(shí)該進(jìn)程才存在。
|
所有 |
db2fcmd |
FCM(快速通信管理器)守護(hù)程序,用于處理分區(qū)間的通信。每個(gè)服務(wù)器、每個(gè)分區(qū)就有一個(gè)這樣的進(jìn)程。 |
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2fmcd |
故障監(jiān)視器協(xié)調(diào)程序(Fault Monitor Coordinator)守護(hù)程序進(jìn)程。每個(gè)物理機(jī)器就有一個(gè)這樣的進(jìn)程。 |
只適用于 UNIX |
db2fmd |
為每個(gè)由故障監(jiān)視器監(jiān)控的 DB2 實(shí)例而啟動(dòng)的故障監(jiān)視器守護(hù)程序進(jìn)程。該進(jìn)程是由協(xié)調(diào)守護(hù)程序(db2fmcd)監(jiān)控的,因此,如果您殺死 db2fmd 進(jìn)程,那么 db2fmcd 將使其重新運(yùn)行。 |
只適用于 UNIX |
db2fmtlg |
當(dāng)數(shù)據(jù)庫(kù)被配置成 LOGRETAIN ON 且 USEREXIT OFF 時(shí),在日志路徑中預(yù)分配日志文件。如果完成了該工作,那么在正常的處理過(guò)程中,當(dāng)從一個(gè)日志文件切換到另一個(gè)日志文件時(shí),引擎進(jìn)程就無(wú)需等待。 |
所有 |
db2gds |
DB2 全局守護(hù)進(jìn)程衍生程序(Global Daemon Spawner)進(jìn)程,該進(jìn)程啟動(dòng) UNIX 上的所有 DB2 EDU(進(jìn)程)。每個(gè)實(shí)例或每個(gè)數(shù)據(jù)庫(kù)分區(qū)就有一個(gè) db2gds。 |
只適用于 UNIX |
db2glock |
全局死鎖檢測(cè)器。該進(jìn)程協(xié)調(diào)從每個(gè)數(shù)據(jù)庫(kù)分區(qū)上的 db2dlock 進(jìn)程收集的信息,以檢查數(shù)據(jù)庫(kù)分區(qū)之間是否存在死鎖情形。db2glock 進(jìn)程運(yùn)行在多分區(qū)數(shù)據(jù)庫(kù)的目錄分區(qū)上。 |
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2govd |
DB2 控制器,它是一個(gè)反應(yīng)性的管理進(jìn)程。如果啟用了 DB2 控制器,該進(jìn)程按照控制器配置文件中指定的時(shí)間間隔來(lái)拍攝快照,并依據(jù)所有的配置規(guī)則來(lái)檢查快照。如果違反了某個(gè)規(guī)則,則采取指定的操作。 |
所有 |
db2panic |
緊急代理程序。如果任何數(shù)據(jù)庫(kù)分區(qū)上的代理程序都不空閑,那么該進(jìn)程就處理一些緊急的請(qǐng)求。 |
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2pdbc |
PDB(并行數(shù)據(jù)庫(kù),Parallel Database)控制器。它處理來(lái)自遠(yuǎn)程節(jié)點(diǎn)的并行請(qǐng)求。 |
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2rebal |
重新均衡器進(jìn)程。當(dāng)將容器添加到某個(gè)現(xiàn)有的表空間,并且需要對(duì)現(xiàn)有數(shù)據(jù)進(jìn)行重新均衡時(shí),就調(diào)用該進(jìn)程。該進(jìn)程異步地執(zhí)行重新均衡工作。 |
所有 |
db2resyn |
重新同步管理器進(jìn)程,用于支持使用兩階段提交的應(yīng)用程序 |
所有 |
db2srvlst |
該進(jìn)程用于管理系統(tǒng)(如 OS/390)的地址列表。 |
所有 |
db2sysc |
主 DB2 系統(tǒng)控制器或引擎。如果沒有該進(jìn)程,數(shù)據(jù)庫(kù)服務(wù)器就不能運(yùn)行。 |
所有 |
db2syslog |
系統(tǒng)記錄器進(jìn)程。該進(jìn)程寫到操作系統(tǒng)的錯(cuò)誤日志工具。在 UNIX 上,必須通過(guò)編輯文件 syslog.conf 才能啟用該進(jìn)程。在 Windows 上,DB2 將自動(dòng)編寫 Windows 事件日志。 |
所有 |
db2wdog |
DB2 看守程序。在 UNIX 中,該進(jìn)程是必需的,因?yàn)?UNIX 中的進(jìn)程只能跟蹤其父進(jìn)程的標(biāo)識(shí)。每次新進(jìn)程啟動(dòng)時(shí),db2gds 就會(huì)通知 DB2 看守程序。如果任何 DB2 進(jìn)程接收到 ctrl-c 或其它異常信號(hào),該進(jìn)程就會(huì)向看守程序發(fā)送信號(hào),而看守程序會(huì)將信號(hào)傳播給實(shí)例中其它所有進(jìn)程。 |
只適用于 UNIX |
dlasync |
DB2 數(shù)據(jù)鏈路(Data Link)(文件管理器)服務(wù)器的監(jiān)視器。僅當(dāng) DB2 配置了數(shù)據(jù)鏈路時(shí)該進(jìn)程才存在。 |
只適用于數(shù)據(jù)鏈路 |
表 2. 每個(gè)實(shí)例和每個(gè)連接
進(jìn)程名 |
描述 |
適用范圍 |
db2agent |
DB2 協(xié)調(diào)程序代理程序,它代表應(yīng)用程序執(zhí)行所有數(shù)據(jù)庫(kù)請(qǐng)求。除非啟用了連接集中器,否則每個(gè)已連接的應(yīng)用程序都將有一個(gè) db2agent 進(jìn)程。
如果啟用了分區(qū)內(nèi)并行性,那么 db2agent 進(jìn)程將調(diào)用 DB2 子代理程序來(lái)執(zhí)行工作,并且它們會(huì)將結(jié)果集返回給協(xié)調(diào)程序代理程序,再返回給應(yīng)用程序。
在分區(qū)數(shù)據(jù)庫(kù)中,協(xié)調(diào)程序代理程序?qū)⑽挥趹?yīng)用程序連接到的分區(qū)上。
|
所有 |
db2agentg |
DRDA 應(yīng)用程序請(qǐng)求器(Application Requester)的網(wǎng)關(guān)代理程序。 |
所有 |
db2agnsc |
并行恢復(fù)代理程序。在前滾和重新啟動(dòng)恢復(fù)的過(guò)程中使用該代理程序來(lái)并行地執(zhí)行日志中的操作。與串行恢復(fù)相比,這可以縮短恢復(fù)時(shí)間。
注:該進(jìn)程支持已記錄事務(wù)中的并行性以及并行事務(wù)之間的并行性。
|
所有 |
db2agnta |
空閑的子代理程序,過(guò)去協(xié)調(diào)代理曾使用過(guò),并且現(xiàn)在仍然與協(xié)調(diào)代理進(jìn)程關(guān)聯(lián)。
當(dāng) INTRA_PARALLEL dbm cfg 參數(shù)設(shè)置成 YES 時(shí)會(huì)出現(xiàn)該進(jìn)程。
|
所有 |
db2agntp |
這是一個(gè)子代理程序,它代表與之相關(guān)的協(xié)調(diào)代理執(zhí)行當(dāng)前工作。這些進(jìn)程提供了分區(qū)內(nèi)并行性,也就是在數(shù)據(jù)庫(kù)實(shí)例/分區(qū)中并行地執(zhí)行查詢的能力。
當(dāng) INTRA_PARALLEL dbm cfg 參數(shù)設(shè)置成 YES 時(shí)會(huì)出現(xiàn)該進(jìn)程。
|
所有 |
db2ipccm |
IPC 通信管理器。每個(gè)數(shù)據(jù)庫(kù)分區(qū)就有一個(gè)這樣的管理器。這是用于本地客戶機(jī)連接的進(jìn)程間通信偵聽器。
本地客戶機(jī)連接是由運(yùn)行 DB2 服務(wù)器的同一臺(tái)計(jì)算機(jī)上的某個(gè)應(yīng)用程序(如 CLP)建立的連接。
|
所有 |
db2tcpcm |
TCP 通信管理器。它充當(dāng) TCP/IP 連接請(qǐng)求的通信偵聽器。當(dāng)偵聽器接收到連接請(qǐng)求時(shí),它就將連接與代理程序相關(guān)聯(lián),然后再繼續(xù)偵聽更多連接請(qǐng)求。 |
所有 |
db2tcpdm |
用于 TCP/IP 發(fā)現(xiàn)請(qǐng)求的通信偵聽器。當(dāng)配置助手(CA)在網(wǎng)絡(luò)中搜索遠(yuǎn)程 DB2 服務(wù)器及其數(shù)據(jù)庫(kù)時(shí),它就會(huì)發(fā)出發(fā)現(xiàn)請(qǐng)求。 |
所有 |
db2snacm |
SNA/APPC 通信管理器。它充當(dāng) SNA/APPC 連接請(qǐng)求的通信偵聽器。當(dāng)偵聽器接收到連接請(qǐng)求時(shí),它就將連接與代理程序相關(guān)聯(lián),然后再繼續(xù)偵聽更多連接請(qǐng)求。 |
所有 |
表 3. 每個(gè)實(shí)例和每個(gè)活動(dòng)數(shù)據(jù)庫(kù)
進(jìn)程名 |
描述 |
適用范圍 |
db2dlock |
本地死鎖檢測(cè)器,每個(gè)數(shù)據(jù)庫(kù)分區(qū)就有這樣一個(gè)檢測(cè)器。它掃描鎖定列表,并查找死鎖情形。當(dāng)遇到死鎖情形時(shí),其中涉及的某個(gè)應(yīng)用程序/事務(wù)就被選做“犧牲品”并被回滾。 |
所有 |
db2estor |
用于復(fù)制數(shù)據(jù)庫(kù)緩沖池和擴(kuò)充存儲(chǔ)器之間的頁(yè)面。僅當(dāng)啟用了數(shù)據(jù)庫(kù)的擴(kuò)充存儲(chǔ)器時(shí)這些進(jìn)程才出現(xiàn)。 |
所有 |
db2event |
事件監(jiān)視器進(jìn)程。每個(gè)活動(dòng)的事件監(jiān)視器,每個(gè)活動(dòng)的數(shù)據(jù)庫(kù)就會(huì)有一個(gè) db2event 進(jìn)程。這些進(jìn)程捕獲已定義的“事件”并寫到為事件監(jiān)視器指定的輸出文件。 |
所有 |
db2loggr |
數(shù)據(jù)庫(kù)日志閱讀器。該進(jìn)程在執(zhí)行下列操作時(shí)讀取數(shù)據(jù)庫(kù)日志文件:
- 事務(wù)處理(即回滾)
- 重新啟動(dòng)恢復(fù)
- 前滾操作
|
所有 |
db2loggw |
數(shù)據(jù)庫(kù)日志記錄器。該進(jìn)程使用日志緩沖區(qū)的日志記錄對(duì)磁盤上的日志文件進(jìn)行刷新。 |
所有 |
db2logts |
該進(jìn)程用于收集有關(guān)當(dāng)某個(gè)表空間被修改時(shí)哪些日志是活動(dòng)的歷史信息。該信息記錄在數(shù)據(jù)庫(kù)目錄的 DB2TSCHG.HIS 文件中。通過(guò)啟用跳過(guò)操作(即跳過(guò)前滾操作不需要的那些日志文件),可以使用該進(jìn)程來(lái)加速表空間前滾恢復(fù)。 |
所有 |
db2pclnr |
緩沖池頁(yè)面清除程序。這些進(jìn)程以異步方式將“臟”頁(yè)面從緩沖池寫回到磁盤。“臟”頁(yè)面是這樣一個(gè)頁(yè)面:在將該頁(yè)面讀入緩沖池后對(duì)其進(jìn)行過(guò)更改,并且磁盤上的映像與緩沖池中的映像不再一樣。
當(dāng)頁(yè)面清除程序被“觸發(fā)”時(shí),它們將同時(shí)全部運(yùn)行。一旦它們完成其分配的工作,就進(jìn)入睡眠狀態(tài),直到被再次觸發(fā)。
頁(yè)面清除程序的任務(wù)是確保緩沖池有空間可以容納正在被應(yīng)用程序檢索的新頁(yè)面。
每個(gè)數(shù)據(jù)庫(kù)的頁(yè)面清除程序的數(shù)量是通過(guò) NUM_IOCLEANERS 數(shù)據(jù)庫(kù)配置參數(shù)配置的。
|
所有 |
db2pfchr |
緩沖池預(yù)取程序。這些進(jìn)程代表應(yīng)用程序在讀取數(shù)據(jù)和索引信息之前,從磁盤讀該信息并且將該信息讀入數(shù)據(jù)庫(kù)緩沖池。預(yù)取程序異步地執(zhí)行這個(gè)“預(yù)讀(read-ahead)”操作。
代表應(yīng)用程序進(jìn)行工作的 DB2 代理程序發(fā)送預(yù)取請(qǐng)求,預(yù)取程序?yàn)檫@些請(qǐng)求提供服務(wù)。預(yù)取程序執(zhí)行大塊 I/O 來(lái)更有效地讀取數(shù)據(jù)。每個(gè)數(shù)據(jù)庫(kù)的預(yù)取程序的數(shù)量是由 NUM_IOSERVERS 數(shù)據(jù)庫(kù)配置參數(shù)配置的。
|
所有 |
表 4. 按功能分類的其它進(jìn)程
進(jìn)程名 |
描述 |
適用范圍 |
db2bm |
備份/恢復(fù)緩沖區(qū)操縱器。該進(jìn)程用于在備份操作過(guò)程中從表空間進(jìn)行讀取,以及用于在恢復(fù)操作過(guò)程中寫到表空間。通過(guò) BACKUP 或 RESTORE 命令配置的每個(gè)備份/恢復(fù)緩沖區(qū)都將有一個(gè) db2bm 進(jìn)程。 |
所有 |
db2fmp |
這是一些受防護(hù)的進(jìn)程,用于在防火墻外的服務(wù)器上運(yùn)行用戶代碼,這些代碼 既有存儲(chǔ)過(guò)程, 又有用戶定義的函數(shù)。
db2fmp 始終是獨(dú)立的進(jìn)程,但是根據(jù)它執(zhí)行的例程類型,也可能是多線程的。
注:該進(jìn)程替換了 DB2 以前版本中使用的 db2udf 和 db2dari 這兩個(gè)進(jìn)程。
|
所有 |
db2lbs |
LOAD LOB 掃描程序。僅當(dāng)裝入工具正在裝入帶有 LOB 列的表時(shí)才使用它們。這些進(jìn)程掃描表的 LOB 對(duì)象,并將該信息讀回表中。 |
所有 |
db2lbmX |
LOAD 緩沖區(qū)操縱器。最后一個(gè)字符“X”表示一或更大的數(shù)字。該進(jìn)程將已裝入的數(shù)據(jù)寫到數(shù)據(jù)庫(kù),并且可能涉及到異步 I/O。“X”始終是 1,不過(guò)通常也會(huì)是更大的數(shù)字,這取決于試探值(heuristic)。試探值取決于系統(tǒng)上的 CPU 數(shù)以及被寫的容器數(shù)。
這個(gè)“智能的缺省值”可能會(huì)被 LOAD 命令的 DISK_PARALLELISM 修飾符覆蓋。
我們應(yīng)當(dāng)明白,這個(gè)異步 I/O 不是某些操作系統(tǒng)支持的異步文件 I/O;它只意味著我們有一些寫 I/O 的獨(dú)立進(jìn)程。這意味著,正在格式化數(shù)據(jù)的其它進(jìn)程不用被 I/O 等待所束縛。
|
所有 |
db2lfrmX |
LOAD 格式化程序進(jìn)程。最后一個(gè)字符“X”表示一或更大的數(shù)字。該進(jìn)程將輸入數(shù)據(jù)格式化成內(nèi)部格式。它始終出現(xiàn)在 LOAD 中。該進(jìn)程使用了智能的缺省值,它可能會(huì)被 CPU_PARALLELISM 修飾符覆蓋,以選擇最佳的 CPU 數(shù)。 |
所有 |
db2lfs |
當(dāng)被裝入的表包含 LONG VARCHAR 列時(shí)則使用這些進(jìn)程。這些進(jìn)程用來(lái)讀和格式化表中的 LONG VARCHAR 列。 |
所有 |
db2lmr |
這是一個(gè) LOAD 媒體閱讀器(Media Reader)進(jìn)程。它讀取裝入輸入文件,一旦讀完所有輸入文件,該進(jìn)程就會(huì)消失。甚至在整個(gè)裝入操作完成之前該進(jìn)程就會(huì)消失。 |
所有 |
db2lmwX |
這些是 LOAD 媒體記錄器進(jìn)程。最后一個(gè)字符“X”表示一或更大的數(shù)字。
如果為 LOAD 命令指定了“裝入副本(load copy)”選項(xiàng),那么該進(jìn)程將生成裝入副本。裝入副本本質(zhì)上就是裝入到表中的數(shù)據(jù)備份。
這些媒體記錄器與 BACKUP 和 RESTORE 使用的媒體記錄器相同。就象在命令行上描述的那樣,每個(gè)復(fù)制會(huì)話調(diào)用一個(gè)媒體記錄器(您可以創(chuàng)建多個(gè)文件的裝入副本)。如果沒有裝入副本,則沒有媒體記錄器。它們根據(jù)數(shù)據(jù)的類型在裝入時(shí)從其它進(jìn)程獲取輸入,但是,由緩沖區(qū)操縱器寫的每位數(shù)據(jù)通常都將被傳遞到媒體記錄器。就如同其它所有的進(jìn)程那樣,它們由裝入代理程序控制。
|
所有 |
db2lrid |
該進(jìn)程在 LOAD 期間執(zhí)行索引排序,并構(gòu)建索引記錄標(biāo)識(shí)(Record ID,RID)。
該進(jìn)程不會(huì)出現(xiàn)在非并行數(shù)據(jù)庫(kù)實(shí)例(即禁用 INTRA_PARALLEL 的實(shí)例)中。該進(jìn)程執(zhí)行的任務(wù)由非并行實(shí)例中的格式化程序 EDU 完成。
該進(jìn)程完成下列三種功能:
- SMP 同步
- 分配 RID,最后一個(gè)將構(gòu)建索引
- 控制 LOAD 格式化程序進(jìn)程的同步
|
所有 |
db2ltsc |
LOAD 表掃描程序。這些進(jìn)程掃描數(shù)據(jù)對(duì)象,查找被裝入的表,并讀取 LOAD 工具的信息。在 LOAD 追加操作過(guò)程中使用這些進(jìn)程。 |
所有 |
db2linit |
LOAD 初始化子代理程序。這個(gè)子代理程序獲取數(shù)據(jù)庫(kù)分區(qū)上必需的資源,并將應(yīng)答序列化,返回給裝入目錄子代理程序。 |
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lcata |
LOAD 目錄子代理程序。這個(gè)子代理程序只在目錄分區(qū)上執(zhí)行,它負(fù)責(zé):
- 衍生初始化子代理程序
- 處理其應(yīng)答
- 存儲(chǔ)目錄分區(qū)上的鎖信息。
該目錄子代理程序還查詢系統(tǒng)目錄表以確定哪些分區(qū)用于數(shù)據(jù)分割和分區(qū)。
正常的裝入作業(yè)只有一個(gè)目錄子代理程序。異常情況是裝入無(wú)法獲取某些分區(qū)上的裝入資源。如果數(shù)據(jù)庫(kù)分區(qū)上的設(shè)置錯(cuò)誤被隔離出來(lái),那么協(xié)調(diào)程序?qū)难b入的內(nèi)部分區(qū)列表除去發(fā)生故障的分區(qū),并衍生一個(gè)新的目錄子代理程序。這一過(guò)程會(huì)重復(fù)進(jìn)行,直到成功獲取所有分區(qū)上的資源,或者在所有分區(qū)上都遇到了故障。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lpprt |
裝入預(yù)分區(qū)子代理程序。這個(gè)子代理程序?qū)⑤斎霐?shù)據(jù)從一個(gè)輸入流預(yù)分區(qū)成多個(gè)輸出流,每個(gè)分區(qū)子代理程序都有一個(gè)這樣的進(jìn)程。
每個(gè)輸入流都將有一個(gè)預(yù)分區(qū)子代理程序。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lpart |
裝入分區(qū)子代理程序。這個(gè)子代理程序?qū)⑤斎霐?shù)據(jù)分區(qū)成多個(gè)輸出流,將寫入數(shù)據(jù)的每個(gè)數(shù)據(jù)庫(kù)分區(qū)都有一個(gè)這樣的進(jìn)程。
分區(qū)子代理程序的數(shù)量可以由用戶進(jìn)行配置。缺省數(shù)量取決于輸出數(shù)據(jù)庫(kù)分區(qū)的總數(shù)。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lmibm |
裝入微型緩沖區(qū)操縱器子代理程序進(jìn)程。
如果為裝入使用了 partition_only方式,那么該子代理程序就編寫分區(qū)的輸出文件。
每個(gè)輸出數(shù)據(jù)庫(kù)分區(qū)就有一個(gè)微型緩沖區(qū)操縱器子代理程序。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lload |
裝入子代理程序進(jìn)程。這個(gè)子代理程序負(fù)責(zé)完成每個(gè)數(shù)據(jù)庫(kù)分區(qū)上的裝入操作。它衍生格式化程序、ridder、緩沖區(qū)操縱器和媒體記錄器 EDU,并監(jiān)視它們的工作。
每個(gè)輸出數(shù)據(jù)庫(kù)分區(qū)都有一個(gè)裝入子代理程序。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lrdfl |
裝入讀文件子代理程序進(jìn)程。這個(gè)子代理程序讀取給定數(shù)據(jù)庫(kù)分區(qū)上的消息文件,并將數(shù)據(jù)發(fā)送回客戶機(jī)。每個(gè)輸出分區(qū)、分區(qū)的分區(qū)和預(yù)分區(qū)的分區(qū)都有一個(gè)讀文件子代理程序。 |
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2llqcl |
裝入查詢清除子代理程序進(jìn)程。這個(gè)子代理程序從給定分區(qū)除去所有裝入臨時(shí)文件。
每個(gè)輸出分區(qū)、分區(qū)的分區(qū)和預(yù)分區(qū)的分區(qū)都有一個(gè)清除子代理程序。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lmitk |
裝入微型任務(wù)子代理程序進(jìn)程。這個(gè)子代理程序釋放了在某次從游標(biāo)調(diào)用的裝入或 CLI 裝入中使用的所有 LOB 定位器。
運(yùn)行在協(xié)調(diào)程序分區(qū)上的每個(gè)游標(biāo)/CLI 裝入都有一個(gè)微型任務(wù)子代理程序。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lurex |
裝入用戶出口子代理程序進(jìn)程。這個(gè)子代理程序運(yùn)行用戶的文件傳送命令。
使用文件傳送命令選項(xiàng)的每個(gè)裝入作業(yè)都將有一個(gè)用戶出口子代理程序。
|
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
db2lmctk |
該進(jìn)程用于持有、釋放或降級(jí)(downgrade)目錄分區(qū)上持有的由于裝入而產(chǎn)生的鎖。 |
只適用于多分區(qū)數(shù)據(jù)庫(kù)環(huán)境 |
d2med |
這些進(jìn)程對(duì)用于 LOAD、備份和恢復(fù)的數(shù)據(jù)庫(kù)表空間進(jìn)行讀和/或?qū)懖僮鳌?
它們將已格式化頁(yè)面中的數(shù)據(jù)寫到表空間容器。
|
所有 |
db2reorg |
該進(jìn)程用于執(zhí)行 DB2 V8.1 中新的聯(lián)機(jī) — 就地重組操作。該進(jìn)程的工作原理類似于磁盤整理碎片工具,它以特定的順序放置數(shù)據(jù)行。 |
所有 |
表 5. 一些常用的可執(zhí)行文件
進(jìn)程名 |
描述 |
適用范圍 |
db2 |
DB2 命令行處理器(CLP)前臺(tái)進(jìn)程。它解析 DB2 命令和 SQL 語(yǔ)句等。
該進(jìn)程是 DB2 CLP 的交互式組件。
這個(gè)前端/后端配置對(duì)于命令行性能確實(shí)有一些益處:前端處理到用戶的連接,而后端與數(shù)據(jù)庫(kù)進(jìn)行連接。
您可以使用 CTRL-C/CRTL-Break 來(lái)停止處理工作(即當(dāng)返回太多記錄時(shí)),而無(wú)需殺死到數(shù)據(jù)庫(kù)的連接。
|
所有 |
db2bp |
這是 DB2 CLP 的持久后臺(tái)進(jìn)程,并且它是實(shí)際連接到數(shù)據(jù)庫(kù)的進(jìn)程。
因?yàn)?DB2 CLP 允許 OS 及 DB2 命令/語(yǔ)句,因此這個(gè)后臺(tái)進(jìn)程是必需的。
|
所有 |
db2cmd |
類似于 db2 可執(zhí)行文件,但適用于 Windows。db2cmd 調(diào)用 Windows 命令窗口。在 Windows 上,當(dāng)父線程被終止時(shí),它們不能終止其子進(jìn)程。DB2 命令行處理器具有一個(gè)前端和后端進(jìn)程/線程,因此我們需要一個(gè) cookie(通過(guò) DB2CMD.EXE 啟動(dòng)的)在 Windows 上將這些線程聯(lián)系在一起,這樣,如果用戶退出或殺死前端進(jìn)程,那么后端進(jìn)程也被終止。 |
只適用于 Windows |
db2start |
啟動(dòng) DB2 引擎的用戶命令。 |
所有 |
db2star2 |
真正的 db2start 程序。 |
所有 |
db2stop |
停止 DB2 引擎的用戶命令。 |
所有 |
db2stop2 |
真正的 db2stop 程序。 |
所有 |
表 6. 其它 Windows 服務(wù)/進(jìn)程
進(jìn)程名 |
描述 |
db2dasrrm.exe |
DB2 管理服務(wù)器(Admin Server)進(jìn)程。通過(guò)使用 DB2 控制中心(Control Center),該進(jìn)程支持本地和遠(yuǎn)程管理請(qǐng)求。 |
db2dasstm.exe |
DB2 管理服務(wù)器工具 DB 管理器進(jìn)程。如果已經(jīng)在 DB2 服務(wù)器上設(shè)置了該進(jìn)程,那么它就會(huì)將信息存入工具數(shù)據(jù)庫(kù),并從工具數(shù)據(jù)庫(kù)檢索信息。 |
db2fmp.exe |
該進(jìn)程處理/執(zhí)行所有受防護(hù)的存儲(chǔ)過(guò)程和 UDF。 |
db2rcmd.exe |
DB2 遠(yuǎn)程命令服務(wù)(Remote Command Service),它自動(dòng)處理分區(qū)間的管理通信。 |
db2jds.exe |
DB2 JDBC applet 服務(wù)器服務(wù)。該服務(wù)攔截和處理連接到 DB2 服務(wù)器的所有 JDBC 應(yīng)用程序。 |
db2licd.exe |
DB2 許可證守護(hù)程序。該進(jìn)程驗(yàn)證 DB2 啟動(dòng)時(shí)正確的 DB2 許可證是否安裝到了服務(wù)器上。 |
db2sec.exe |
在 Windows 的 DB2 服務(wù)器上使用該進(jìn)程來(lái)檢查用戶標(biāo)識(shí)和密碼。由于 DB2 依賴于操作系統(tǒng)級(jí)別的認(rèn)證,因此,當(dāng)某個(gè)用戶或應(yīng)用程序連接到服務(wù)器上的數(shù)據(jù)庫(kù)時(shí),使用該進(jìn)程驗(yàn)證用戶標(biāo)識(shí)和密碼。當(dāng)將認(rèn)證設(shè)置為 SERVER 時(shí),或者當(dāng)連接是從非安全的操作系統(tǒng)建立的時(shí)候,就會(huì)進(jìn)行這一認(rèn)證。 |
db2syscs.exe |
Windows 上的主要 DB2 系統(tǒng)控制器或引擎。EDU 是該進(jìn)程中的線程。
請(qǐng)注意末尾的“s”代表 Windows 服務(wù)。
|
IWH2SERV.EXE |
倉(cāng)庫(kù)管理器中心(Warehouse Manager Center)。該中心作為 DB2 ESE 的一部分(而不是 DB2 引擎的一部分)安裝。 |
下表可能是一個(gè)非常有用的索引,可以用它來(lái)找到給定的進(jìn)程。它以字母順序列出了所有進(jìn)程,并且?guī)в械缴鲜霰淼逆溄印?/p>
表 7. 按字母順序排列的所有進(jìn)程
# |
進(jìn)程/Windows 服務(wù)/可執(zhí)行文件名 |
到提供更詳細(xì)信息的表的鏈接 |
1 |
db2 |
表 5 |
2 |
db2agent |
表 2 |
3 |
db2agentg |
表 2 |
4 |
db2agnsc |
表 2 |
5 |
db2agnta |
表 2 |
6 |
db2agntp |
表 2 |
7 |
db2bm |
表 4 |
8 |
db2bp |
表 5 |
9 |
db2cart |
表 1 |
10 |
db2chkau |
表 1 |
11 |
db2ckpw |
表 1 |
12 |
db2cmd |
表 5 |
14 |
db2dasrrm.exe |
表 6 |
15 |
db2dasstm.exe |
表 6 |
16 |
db2disp |
表 1 |
17 |
db2dlock |
表 3 |
18 |
db2estor |
表 3 |
19 |
db2fcmd |
表 1 |
20 |
db2fmcd |
表 1 |
21 |
db2fmd |
表 1 |
22 |
db2fmp |
表 1和 表 6 |
23 |
d2fmtlg |
表 1 |
24 |
db2gds |
表 1 |
25 |
db2glock |
表 1 |
26 |
db2govd |
表 1 |
27 |
db2ipccm |
表 2 |
28 |
db2jds.exe |
表 8 |
29 |
db2lbmX |
表 4 |
30 |
db2lbs |
表 4 |
31 |
db2lcata |
表 4 |
32 |
db2lfrmX |
表 4 |
33 |
db2lfs |
表 4 |
34 |
db2licd.exe |
表 6 |
35 |
db2linit |
表 4 |
36 |
db2lload |
表 4 |
37 |
db2llqcl |
表 4 |
38 |
db2lmctk |
表 4 |
39 |
db2lmibm |
表 4 |
40 |
db2lmitk |
表 4 |
41 |
db2lmr |
表 4 |
42 |
db2lmwX |
表 4 |
43 |
db2loggr |
表 3 |
44 |
db2loggw |
表 3 |
45 |
db2logts |
表 3 |
46 |
db2lpart |
表 4 |
47 |
db2lpprt |
表 4 |
48 |
db2lrdfl |
表 4 |
49 |
db2lrid |
表 4 |
50 |
db2ltsc |
表 4 |
51 |
db2lurex |
表 4 |
52 |
db2med |
表 4 |
53 |
db2panic |
表 1 |
54 |
db2pclnr |
表 3 |
55 |
db2pdbc |
表 1 |
56 |
db2pfchr |
表 3 |
57 |
db2rcmd.exe |
表 6 |
58 |
db2rebal |
表 1 |
59 |
db2reorg |
表 4 |
60 |
db2resyn |
表 1 |
61 |
db2sec.exe |
表 6 |
62 |
db2snacm |
表 2 |
63 |
db2srvlst |
表 1 |
64 |
db2start |
表 5 |
65 |
db2star2 |
表 5 |
66 |
db2stop |
表 5 |
67 |
db2stop2 |
表 5 |
68 |
db2sysc |
表 1 |
69 |
db2syscs.exe |
表 6 |
70 |
db2tcpcm |
表 2 |
71 |
db2tcpdm |
表 2 |
72 |
db2wdog |
表 1 |
73 |
dlasync |
表 1 |
74 |
IWH2SERV.EXE |
表 6 |

 |

|
示例
下面這一節(jié)為您演示了一些輸出示例,當(dāng)您在 AIX 中執(zhí)行 ps -ef
命令時(shí)可能會(huì)獲得這樣的輸出。
運(yùn)行 db2start 之后:
root 49504 1 0 13:13:07 - 0:00 db2wdog
db2inst1 22142 49180 0 13:13:10 - 0:00 db2gds
db2inst1 43072 49180 0 13:13:17 - 0:00 db2syslog
db2inst1 45294 74134 0 12:12:43 pts/2 0:00 /usr/bin/ksh
db2inst1 49180 49504 0 13:13:10 - 0:00 db2sysc
db2inst1 55920 49180 0 13:13:19 - 0:00 db2resync
db2inst1 59012 22142 0 13:13:19 - 0:00 db2srvlst
db2inst1 60680 49180 0 13:13:17 - 0:00 db2ipccm
|
數(shù)據(jù)庫(kù)管理器配置文件包含下列設(shè)置,它們會(huì)影響您最初看到的進(jìn)程:
Max number of existing agents (MAXAGENTS) = 200
Agent pool size (NUM_POOLAGENTS) = 100(calculated)
Initial number of agents in pool (NUM_INITAGENTS) = 0
|
由于 NUM_INITAGENTS 是 0,所以在運(yùn)行 db2start 時(shí)不會(huì)顯示“db2agent (idle)”進(jìn)程。例如,如果在運(yùn)行 db2start 之前將 NUM_INITAGENTS 設(shè)置為 5,那么在發(fā)出 db2start 之后,將顯示下面這些額外的進(jìn)程:
db2inst1 35542 59814 0 16:25:57 - 0:00 db2agent (idle)
db2inst1 43096 59814 0 16:25:57 - 0:00 db2agent (idle)
db2inst1 49628 59814 0 16:25:57 - 0:00 db2agent (idle)
db2inst1 58170 59814 0 16:25:57 - 0:00 db2agent (idle)
db2inst1 64012 59814 0 16:25:57 - 0:00 db2agent (idle)
|
在連接到數(shù)據(jù)庫(kù) SAMPLE 后(NUM_INITAGENTS 的值仍然保持為 0)
root 49504 1 0 13:13:07 - 0:00 db2wdog
db2inst1 25844 35124 0 16:04:50 - 0:00 db2pfchr
db2inst1 35124 65638 0 16:04:17 - 0:00 db2gds
db2inst1 35540 35124 0 16:04:50 - 0:00 db2loggr (SAMPLE)
db2inst1 41940 65638 0 16:04:19 - 0:00 db2resync
db2inst1 45058 35124 0 16:04:50 - 0:00 db2pfchr
db2inst1 49300 35124 0 16:04:19 - 0:00 db2srvlst
db2inst1 49626 35124 0 16:04:50 - 0:00 db2dlock (SAMPLE)
db2inst1 55852 65638 0 16:04:17 - 0:00 db2ipccm
db2inst1 58168 35124 0 16:04:50 - 0:00 db2loggw (SAMPLE)
db2inst1 59048 35124 0 16:04:50 - 0:00 db2pfchr
db2inst1 64010 55852 0 16:04:50 - 0:00 db2agent (SAMPLE)
db2inst1 65638 22238 0 16:04:17 - 0:00 db2sysc
db2inst1 70018 35124 0 16:04:50 - 0:00 db2pclnr
db2inst1 72120 35124 0 16:04:51 - 0:00 db2event (DB2DETAILDEADLOCK)
db2inst1 74198 65638 0 16:04:17 - 0:00 db2syslog
db2inst1 74578 1 0 16:04:47 - 0:00 /home/db2inst1/sqllib/bin/db2bp
50112C14631 5
|
連接到 SAMPLE 數(shù)據(jù)庫(kù)后,“db2agent (SAMPLE)”進(jìn)程出現(xiàn)了。該進(jìn)程表明實(shí)際上有一個(gè)到 SAMPLE 數(shù)據(jù)庫(kù)的連接。如果我們發(fā)出以下命令:
db2agent (SAMPLE) 現(xiàn)在將變成 db2agent (idle)。這是因?yàn)?NUM_POOLAGENTS 被設(shè)置成了大于零的數(shù),這意味著該代理程序盡管是空閑的,但在池中將仍然保持被分配的狀態(tài)。如果 NUM_POOLAGENTS 被設(shè)置成零,那么在運(yùn)行了“connect reset”后,將不再有 db2agent 進(jìn)程運(yùn)行。
SAMPLE 數(shù)據(jù)庫(kù)的數(shù)據(jù)庫(kù)配置文件包含下列這些設(shè)置:
Number of asynchronous page cleaners (NUM_IOCLEANERS) = 1
Number of I/O servers (NUM_IOSERVERS) = 3
|
請(qǐng)注意,有三個(gè) db2pfchr 進(jìn)程(與 NUM_IOSERVERS 的值對(duì)應(yīng))和一個(gè) db2pclnr 進(jìn)程(與 NUM_IOCLEANERS 的值對(duì)應(yīng))。
結(jié)束語(yǔ)
根據(jù)不同的 DB2 操作和配置設(shè)置,將會(huì)有許多其它進(jìn)程出現(xiàn)和消失。我們已經(jīng)為您展示了一些樣本方案,這些方案演示了您可以如何觀察哪些進(jìn)程正在運(yùn)行、這些進(jìn)程表明了什么以及數(shù)據(jù)庫(kù)設(shè)置對(duì)其產(chǎn)生了怎樣的影響。現(xiàn)在您可以使用這一知識(shí)來(lái)提高您管理 DB2 數(shù)據(jù)庫(kù)的能力。