共計 3978 個字符,預計需要花費 10 分鐘才能閱讀完成。
這期內容當中丸趣 TV 小編將會給大家帶來有關 db2 進程模型的示例分析,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
DB2 進程技術模型
所有 DB2 數據庫服務器使用的進程技術模型都旨在簡化數據庫服務器與客戶機之間的通信。它還確保數據庫應用程序獨立于數據庫控制塊和關鍵數據庫文件之類的資源。
DB2 數據庫服務器必須執行各種不同的任務,例如處理數據庫應用程序請求或確保將日志記錄寫入磁盤。通常,每項任務都由一個獨立的引擎可分派單元 (EDU) 執行。
采用多線程體系結構對于 DB2 數據庫服務器而言有很多優點。由于同一進程內的所有線程可以共享一些操作系統資源,因此,新線程需要的內存和操作系統資源比進程要少。此外,在某些平臺上,線程的上下文切換時間比進程短,這有助于提高性能。在所有平臺上使用線程模型使得 DB2 數據庫服務器更易于配置,因為這樣更容易根據需要分配更多 EDU,并且可以動態分配必須由多個 EDU 共享的內存。
對于所訪問的每個數據庫,將啟動不同的 EDU 以處理各種數據庫任務,例如預取、通信和日志記錄。數據庫代理程序是一類特殊的 EDU,創建它們是為了處理應用程序對數據庫的請求。
通常,您可以依靠 DB2 數據庫服務器來管理 EDU 集合。但是,也可以通過一些 DB2 工具來管理 EDU。例如,可以使用帶有 -edus 選項的 db2pd 命令來列示所有活動的 EDU 線程。
每個客戶機應用程序連接都有一個對數據庫執行操作的協調代理程序。協調代理程序代表應用程序工作,并根據需要使用專用內存、進程間通信 (IPC) 或遠程通信協議與其他代理程序進行通信。
客戶機程序
客戶機程序可以是遠程程序,也可以是在數據庫服務器所在機器上運行的本地程序。客戶機程序首先通過通信偵聽器與數據庫聯系。
偵聽器
通信偵聽器在 DB2 數據庫服務器啟動時啟動。每種已配置的通信協議都有一個偵聽器,本地客戶機程序使用進程間通信 (IPC) 偵聽器 (db2ipccm)。偵聽器包括:
db2ipccm,用于本地客戶機連接
db2tcpcm,用于 TCP/IP 連接
db2tcpdm,用于 TCP/IP 發現工具請求
代理程序
將為所有來自本地或遠程客戶機程序(應用程序)的連接請求分配相應的協調代理程序 (db2agent)。創建協調代理程序之后,它將代表該應用程序執行所有數據庫請求。
在分區數據庫環境或者已啟用查詢內并行性的系統中,協調代理程序會將數據庫請求分發給子代理程序(db2agntp 和 db2agnts)。與應用程序相關聯但當前處于空閑狀態的子代理程序名為 db2agnta。
協調代理程序可能:
已通過別名連接到數據庫;例如,db2agent (DATA1) 將連接到數據庫別名 DATA1。
已連接到實例;例如 db2agent (user1) 將連接到實例 user1。
DB2 數據庫服務器還會將其他類型的代理程序(例如獨立的協調代理程序或子協調代理程序)實例化,以便執行特定的操作。例如,獨立的協調代理程序 db2agnti 用于運行事件監視器,而子協調代理程序 db2agnsc 用于在異常關閉后以并行方式執行數據庫重新啟動操作。
網關代理程序 (db2agentg) 是一個與遠程數據庫相關聯的代理程序。它提供用于允許客戶機訪問主機數據庫的間接連接。
空閑代理程序駐留在代理程序池中。這些代理程序可用于處理來自代表客戶機程序運行的協調代理程序或來自代表現有協調代理程序運行的子代理程序的請求。當存在大量應用程序工作負載時,配備大小適當的空閑代理程序池有助于提高性能。在這種情況下,可以根據需要立即使用空閑代理程序,而不需要為每個應用程序連接分配新的代理程序,后一種情況涉及創建線程以及分配并初始化內存和其他資源。DB2 數據庫服務器自動管理空閑代理池的大小。
可將合用代理程序關聯到遠程數據庫或本地數據庫。在遠程數據庫上合用的代理程序稱為合用網關代理程序 (db2agntgp)。在本地數據庫上合用的代理程序稱為合用數據庫代理程序 (db2agentdp)。
db2fmp
受保護方式進程負責在防火墻外執行受防護的存儲過程和用戶定義的函數。db2fmp 進程始終是獨立的進程,但可能是多線程進程,這取決于它執行的例程的類型。
db2vend
db2vend 進程代表 EDU 執行供應商代碼;例如,執行用戶出口程序以進行日志歸檔(僅適用于 UNIX)。
數據庫 EDU
以下列表包括每個數據庫使用的一些重要 EDU:
db2pfchr,用于緩沖池預取程序
db2pclnr,用于緩沖池頁清除程序
db2dlock,用于死鎖檢測。在分區數據庫環境中,使用另一個線程 (db2glock) 來協調 db2dlock EDU 從每個分區中收集的信息;db2glock 僅對目錄分區運行。在 db2glock EDU 用于協調 db2dlockEDU 在每個 db2glock EDU 在每個成員上啟動,但只有一個 EDU 處于活動狀態。
db2fw,事件監視器快速寫程序;用于對表、文件或管道進行事件監視器數據的大量、并行寫入。
db2fwx,事件監視器快速寫程序線程,其中“x”標識線程號。在數據庫激活期間,DB2 引擎會將 db2fwx 線程數設置為一個值,該值對于事件監視器性能最佳,并且會避免在運行不同類型的工作負載時發生潛在的性能問題。db2fwx 線程數目等于系統上邏輯 CPU 的數目(對于多核心 CPU,每個核心看作一個邏輯 CPU)。對于分區數據庫環境中的實例,衍生的 db2fwx 線程數等于每個數據庫的每個成員的邏輯 CPU 數除以主機上的本地分區數。
db2hadrp,高可用性災難恢復 (HADR) 主服務器線程
db2hadrs,HADR 備用服務器線程
db2lfr,用于處理各個日志文件的日志文件閱讀器
db2loggr,用于處理日志文件以處理事務處理和恢復
db2loggw,用于將日志記錄寫入日志文件
db2logmgr,用于日志管理器。管理可恢復數據庫的日志文件。
db2logts,用于跟蹤哪些表空間在哪些日志文件中有日志記錄。此信息記錄在數據庫目錄中的 DB2TSCHG.HIS 文件中。
db2lragen,用于對新的中央服務器線程模型生成日志序號(如果定義了具有數據庫作用域的有效 XML 資源策略)。在很大的 NUMA 系統中,這可能會提高性能,并且產生很高的更新比率。
db2lused,用于更新對象用途
db2pcsd,用于程序包高速緩存的自動清除
db2redom,用于重做主進程。在恢復期間,它處理重做日志記錄并將日志記錄指定給重做工作程序來進行處理。
db2redow,用于重做工作程序。在恢復期間,它按照重做主進程的請求來處理重做日志記錄。
db2shred,用于處理日志頁中的各個日志記錄
db2stmm,用于自調整內存管理功能
db2taskd,用于分發后臺數據庫任務。這些任務由名為 db2taskp 的線程執行。
db2wlmd,用于自動收集工作負載管理統計信息
事件監視器線程的標識方式如下:
g – 全局文件事件監視器
gp – 全局管道事件監視器
l – 本地文件事件監視器
lp – 本地管道事件監視器
t – 表事件監視器
i – 協調程序
p – 不是協調程序
db2evm%1%2 (%3)
其中,%1 可以是:
%2 可以是:
而 %3 是事件監視器名稱
備份和復原線程的標識方式如下:
%1 是用于控制備份或復原會話的代理程序的 EDU 標識
%2 是用于區分屬于特定備份或復原會話的線程(可能有許多個)的順序值
db2bm.%1.%2(備份和復原緩沖區操縱程序)和 db2med.%1.%2(備份和復原介質控制器),其中:例如:db2bm.13579.2 標識具有 EDU 標識為 13579 的 db2agent 線程控制的第二個 db2bm 線程。
以下數據庫 EDU 用于在
db2LLMn1,用于處理 db2LLMn2,用于處理 db2LLMng,用于確保此成員掛起的鎖定及時釋放(如果其他成員在等待這些鎖定)
db2LLMrl,用于處理 db2LLMrc,用于處理數據庫恢復操作及
數據庫服務器線程和進程
系統控制器(在 UNIX 上為 db2sysc,在 Windows 操作系統上為 db2syscs.exe)必須存在,這樣數據庫服務器才能工作。以下線程和進程執行各種任務:
db2acd,用于主管運行狀況監視器、自動維護實用程序和管理任務調度程序的自主計算守護程序。此進程以前稱為 db2hmon。
db2aiothr,用于管理數據庫分區的異步 I/O 請求(僅適用于 UNIX)
db2alarm,用于在他們請求的計時器到期時通知 EDU(僅適用于 UNIX)
db2disp,客戶機連接集中器分派器
db2fcms,快速通信管理器發送方守護程序
db2fcmr,快速通信管理器接收方守護程序
db2fmd,故障監視器守護程序
db2licc,管理已安裝的 DB2 許可證
db2panic,應急啟動代理程序,用于在達到代理程序限制后處理緊急請求。
db2pdbc,并行系統控制器,用來處理來自遠程數據庫分區的并行請求(僅用于分區數據庫環境)
db2resync,掃描全局再同步列表的再同步代理進程
db2rocm 和 db2rocme,在 db2sysc,主系統控制器 EDU;它處理關鍵的 DB2 服務器事件
db2sysc(空閑),DB2 空閑進程,它們允許在主機上快速輕量級重新啟動訪客 db2thcln,在 EDU 終止時重新啟動資源(僅適用于 UNIX)
db2wdog,在 UNIX 和 Linux 操作系統上處理異常終止的看守程序
db2wlmt,WLM 分派器調度線程
db2wlmtm,WLM 分派器計時器線程
上述就是丸趣 TV 小編為大家分享的 db2 進程模型的示例分析了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注丸趣 TV 行業資訊頻道。