在 8.2 版中, 引入一種新的工具 db2pd 來監控和管理 DB2 數據庫和實例。使用這一工具可以跟蹤事務、表空間、表統計信息、動態 SQL 和所有配置信息。對于故障檢修、確定問題和性能調優等方面。
db2pd用于收集 DB2 實例和數據庫的統計信息。db2pd 提供了 20 多個選項顯示關于數據庫事務、表空間、表統計信息、動態 SQL、數據庫配置和其他很多細節的信息。單個 db2pd 命令可以檢索多個領域的信息,并把結果保存到文件中。也可以在特定時期內調用該工具一定的次數,幫助您了解隨著時間的變化數據庫中的變動情況。該工具可用于故障檢修、問題確定、數據庫監控、性能調優和幫助應用程序的開發設計。
//其它用途選項:
(1)-repeat [num sec] [count] 該選項用于重復db2pd命令,并指定間隔多長時間執行多少次,例如:
************************************************************
[db2inst1@localhost ~]$ db2pd -agents -repeat 2 5
************************************************************
該命令表明輸出實例的代理進程信息,并且是每2秒種輸出一次,共輸出5次。
(2)-file <filename> 該選項將輸出結果保存到一個指定文件中。例如:
************************************************************
[db2inst1@localhost ~]$ db2pd -agents -repeat 2 5 -file agent_info.txt
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
************************************************************
以上例為基礎,加上-file agent_info.txt選項后,該命令會把輸出保存到agent_info.txt文件中。以便進行詳細分析。
(3)db2pd 命令的所有選項都可以使用前三個字符的縮寫,只有兩個除外:-mempools 和 –memsets。
//要想了解db2pd命令的全部信息,可以執行db2pd -help來獲得。
db2pd用于收集 DB2 實例和數據庫的統計信息。db2pd 提供了 20 多個選項顯示關于數據庫事務、表空間、表統計信息、動態 SQL、數據庫配置和其他很多細節的信息。單個 db2pd 命令可以檢索多個領域的信息,并把結果保存到文件中。也可以在特定時期內調用該工具一定的次數,幫助您了解隨著時間的變化數據庫中的變動情況。該工具可用于故障檢修、問題確定、數據庫監控、性能調優和幫助應用程序的開發設計。
db2pd工具有兩種執行方式:
1.交互式
2.直接在命令行執行
1.交互式
2.直接在命令行執行
對于第一種交互式執行方式,需要要在命令行執行:
************************************************************
[db2inst1@localhost ~]$ db2pd -interactive
db2pd> You are running db2pd in interactive mode.
db2pd> If you want command line mode, rerun db2pd with valid options.
db2pd> Type -h or -help for help.
db2pd> Type q to quit.
db2pd>
************************************************************
************************************************************
[db2inst1@localhost ~]$ db2pd -interactive
db2pd> You are running db2pd in interactive mode.
db2pd> If you want command line mode, rerun db2pd with valid options.
db2pd> Type -h or -help for help.
db2pd> Type q to quit.
db2pd>
************************************************************
或者直接執行db2pd.這樣可以進入db2pd的命令行,進行交互式操作,例如:
************************************************************
db2pd> -mempools
db2pd> -mempools
Database Partition 0 -- Active -- Up 47 days 12:09:32
Memory Pools:
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
0x100005B8 DBMS bsuh 71 0 103824 9256960 225132 131072 9256960 245760 Ovf 158 n/a
************************************************************
交互方式只要在db2pd命令行下輸入相關參數即可。本例輸出結果為實例的內存池使用相關信息。
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
0x100005B8 DBMS bsuh 71 0 103824 9256960 225132 131072 9256960 245760 Ovf 158 n/a
************************************************************
交互方式只要在db2pd命令行下輸入相關參數即可。本例輸出結果為實例的內存池使用相關信息。
以上介紹的交互式執行方式如果改用在系統命令行直接執行的話:
************************************************************
[db2inst1@localhost ~]$ db2pd -mempools
************************************************************
[db2inst1@localhost ~]$ db2pd -mempools
Database Partition 0 -- Active -- Up 47 days 12:16:11
Memory Pools:
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
************************************************************
其實和交互方式執行是一樣的結果。
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
************************************************************
其實和交互方式執行是一樣的結果。
db2pd有22個選項,如果想對所有分區,所有活動數據庫,運行所有選項,您只要輸入db2pd -everything,就會列出所有信息。
//如果想控制輸出的范圍,可以參考如下:
-ins 輸出實例相關信息
-db dbname 輸出數據庫dbname相關信息,用于單一指定的數據庫。
-alldb 輸出所有數據庫信息。
-dbp partitionnum 輸出特定的數據庫分區服務器的信息
-alldbp 輸出所有數據庫分區服務器的信息
-osinfo 輸出操作系統相關信息
//如果想控制輸出的范圍,可以參考如下:
-ins 輸出實例相關信息
-db dbname 輸出數據庫dbname相關信息,用于單一指定的數據庫。
-alldb 輸出所有數據庫信息。
-dbp partitionnum 輸出特定的數據庫分區服務器的信息
-alldbp 輸出所有數據庫分區服務器的信息
-osinfo 輸出操作系統相關信息
//實例范圍的選項:
(1)-agents 輸出DB2代理的相關信息。在日常監控中是一個比較常用的選項,執行方式和輸出方式可以通過不同了選項進行控制。
****************************************************************
[db2inst1@localhost ~]$ db2pd -agents db=db2db
(1)-agents 輸出DB2代理的相關信息。在日常監控中是一個比較常用的選項,執行方式和輸出方式可以通過不同了選項進行控制。
****************************************************************
[db2inst1@localhost ~]$ db2pd -agents db=db2db
Database Partition 0 -- Active -- Up 47 days 12:44:13
Agents:
Current agents: 42
Idle agents: 23
Active agents: 18
Coordinator agents: 18
Current agents: 42
Idle agents: 23
Active agents: 18
Coordinator agents: 18
Address AppHandl [nod-index] AgentPid Priority Type State ClientPid Userid ClientNm Rowsread Rowswrtn LkTmOt DBName
0x101818F0 431 [000-00431] 32659 0 Coord Active 0 db2jccTP 546895 575 NotSet DB2DB
0x101833A0 202 [000-00202] 32717 0 Coord Active 0 db2jccTP 20556 0 NotSet DB2DB
0x10175AF0 457 [000-00457] 29669 0 Coord Active 0 db2jccTP 38169 0 NotSet DB2DB
0x10176D70 201 [000-00201] 31400 0 Coord Active 0 db2jccma 95758 0 NotSet DB2DB
0x10176280 187 [000-00187] 29670 0 Coord Active 0 db2jccTh 9508153 0 NotSet DB2DB
****************************************************************
只輸出數據庫DB2DB相關信息。相關子選項還包括agent=<agentid>,application=<appid>等。
(2)-fcm FCM信息
(3)-mempools 輸出內存池相關信息。如:
************************************************************
[db2inst1@localhost ~]$ db2pd -mempools
0x101818F0 431 [000-00431] 32659 0 Coord Active 0 db2jccTP 546895 575 NotSet DB2DB
0x101833A0 202 [000-00202] 32717 0 Coord Active 0 db2jccTP 20556 0 NotSet DB2DB
0x10175AF0 457 [000-00457] 29669 0 Coord Active 0 db2jccTP 38169 0 NotSet DB2DB
0x10176D70 201 [000-00201] 31400 0 Coord Active 0 db2jccma 95758 0 NotSet DB2DB
0x10176280 187 [000-00187] 29670 0 Coord Active 0 db2jccTh 9508153 0 NotSet DB2DB
****************************************************************
只輸出數據庫DB2DB相關信息。相關子選項還包括agent=<agentid>,application=<appid>等。
(2)-fcm FCM信息
(3)-mempools 輸出內存池相關信息。如:
************************************************************
[db2inst1@localhost ~]$ db2pd -mempools
Database Partition 0 -- Active -- Up 47 days 12:16:11
Memory Pools:
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
************************************************************
(4)-dbmcfg 輸出dbm配置信息,等同于get dbm cfg 命令,但輸出格式稍有不同。
(5)-utilities 輸出db2實用程序相關信息。如果正在進行數據庫備份,執行該選項可以看到:
************************************************************
[db2inst1@fxstest1 ~]$ db2pd -utilities
Address MemSet PoolName Id Overhead LogSz LogUpBnd LogHWM PhySz PhyUpBnd PhyHWM Bnd BlkCnt CfgParm
0x10000818 DBMS monh 11 24352 140848 368640 142182 180224 376832 180224 Ovf 13 MON_HEAP_SZ
0x10000780 DBMS resynch 62 13792 100880 3244032 100880 131072 3244032 131072 Ovf 2 n/a
0x100006E8 DBMS apmh 70 0 109258 1622016 114378 131072 1622016 131072 Ovf 86 n/a
0x10000650 DBMS kerh 52 96 27260 360448 27684 49152 360448 49152 Ovf 11 n/a
************************************************************
(4)-dbmcfg 輸出dbm配置信息,等同于get dbm cfg 命令,但輸出格式稍有不同。
(5)-utilities 輸出db2實用程序相關信息。如果正在進行數據庫備份,執行該選項可以看到:
************************************************************
[db2inst1@fxstest1 ~]$ db2pd -utilities
Database Partition 0 -- Active -- Up 5 days 19:43:49
Utilities:
Address ID Type Priority DBName StartTime NumPhases CurPhase Description
0x100E24F0 371 BACKUP 0 DB2DB Mon Oct 23 09:07:51 2006 1 1 offline db d
Address ID Type Priority DBName StartTime NumPhases CurPhase Description
0x100E24F0 371 BACKUP 0 DB2DB Mon Oct 23 09:07:51 2006 1 1 offline db d
Progress:
Address ID PhaseNum Description StartTime CompletedWork TotalWork
0x100E2710 371 1 Mon Oct 23 09:07:51 2006 0 bytes 12673724849 bytes
[db2inst1@fxstest1 ~]$
************************************************************
該輸出結果中,記錄了正在執行的實用程序相關信息。程序程序類型,數據庫名稱,備份類型等。
Address ID PhaseNum Description StartTime CompletedWork TotalWork
0x100E2710 371 1 Mon Oct 23 09:07:51 2006 0 bytes 12673724849 bytes
[db2inst1@fxstest1 ~]$
************************************************************
該輸出結果中,記錄了正在執行的實用程序相關信息。程序程序類型,數據庫名稱,備份類型等。
//數據庫范圍的選項,注意,數據庫范圍的選項一定要指定某個數據庫,加上參數-db dbname:
(1)-applications 特定數據庫的應用程序的相關信息。
************************************************************
[db2inst1@localhost ~]$ db2pd -applications -db db2db
(1)-applications 特定數據庫的應用程序的相關信息。
************************************************************
[db2inst1@localhost ~]$ db2pd -applications -db db2db
Database Partition 0 -- Database DB2DB -- Active -- Up 47 days 13:19:50
Applications:
Address AppHandl [nod-index] NumAgents CoorPid Status Appid
0x10160C70 431 [000-00431] 1 32659 UOW-Waiting GA04051D.D308.010E635F83E3
0x100DDD10 202 [000-00202] 1 32717 UOW-Waiting GA04051D.D305.010E635F7D45
0x100DDCA0 457 [000-00457] 1 29669 UOW-Waiting GA04051D.D304.010E635F7D3B
0x101938D0 201 [000-00201] 1 31400 UOW-Waiting GA04051D.D2EE.010E635B3321
0x10193E20 187 [000-00187] 1 29670 UOW-Waiting GA04051F.A010.010E5A07F490
0x101903C0 37 [000-00037] 1 19507 UOW-Waiting GA04051F.A00F.010E5A07F459
************************************************************
同時還有很多相關子選項用于更精確的輸出某個應用程序的相關信息。
Address AppHandl [nod-index] NumAgents CoorPid Status Appid
0x10160C70 431 [000-00431] 1 32659 UOW-Waiting GA04051D.D308.010E635F83E3
0x100DDD10 202 [000-00202] 1 32717 UOW-Waiting GA04051D.D305.010E635F7D45
0x100DDCA0 457 [000-00457] 1 29669 UOW-Waiting GA04051D.D304.010E635F7D3B
0x101938D0 201 [000-00201] 1 31400 UOW-Waiting GA04051D.D2EE.010E635B3321
0x10193E20 187 [000-00187] 1 29670 UOW-Waiting GA04051F.A010.010E5A07F490
0x101903C0 37 [000-00037] 1 19507 UOW-Waiting GA04051F.A00F.010E5A07F459
************************************************************
同時還有很多相關子選項用于更精確的輸出某個應用程序的相關信息。
(2)-transactions 輸出某個特定數據庫的事務信息
(3)-bufferpools 輸出某個特定數據庫的緩沖池信息
(4)-logs 輸出某個特定數據庫的日志信息
(5)-reorgs 輸出某個特定數據庫的表重組信息
相關統計信息參數還有很多,可以通可幫助信息獲得。
(3)-bufferpools 輸出某個特定數據庫的緩沖池信息
(4)-logs 輸出某個特定數據庫的日志信息
(5)-reorgs 輸出某個特定數據庫的表重組信息
相關統計信息參數還有很多,可以通可幫助信息獲得。
//其它用途選項:
(1)-repeat [num sec] [count] 該選項用于重復db2pd命令,并指定間隔多長時間執行多少次,例如:
************************************************************
[db2inst1@localhost ~]$ db2pd -agents -repeat 2 5
************************************************************
該命令表明輸出實例的代理進程信息,并且是每2秒種輸出一次,共輸出5次。
(2)-file <filename> 該選項將輸出結果保存到一個指定文件中。例如:
************************************************************
[db2inst1@localhost ~]$ db2pd -agents -repeat 2 5 -file agent_info.txt
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
Sending -agents output to /home/db2inst1/agent_info.txt.
************************************************************
以上例為基礎,加上-file agent_info.txt選項后,該命令會把輸出保存到agent_info.txt文件中。以便進行詳細分析。
(3)db2pd 命令的所有選項都可以使用前三個字符的縮寫,只有兩個除外:-mempools 和 –memsets。
//接下來講一個具體應用db2pd的例子。
如果想確定誰給數據庫加了鎖,并想知道銷類型等相關信息:
************************************************************
[db2inst1@localhost ~]$ db2pd -db db2db -lock -transactions -agents -file lock_info.txt
************************************************************
該命令會將lock,transactions,agents三項的輸出保存到lock_info.txt中。然后通過lock部分輸出中TranHdl可以在transactions輸出中找到AppHandl,然后再根據AppHandl,可以在agents部分輸出中
找到持有該鎖的Userid。在確定是誰給數據庫加了鎖。
如果想確定誰給數據庫加了鎖,并想知道銷類型等相關信息:
************************************************************
[db2inst1@localhost ~]$ db2pd -db db2db -lock -transactions -agents -file lock_info.txt
************************************************************
該命令會將lock,transactions,agents三項的輸出保存到lock_info.txt中。然后通過lock部分輸出中TranHdl可以在transactions輸出中找到AppHandl,然后再根據AppHandl,可以在agents部分輸出中
找到持有該鎖的Userid。在確定是誰給數據庫加了鎖。
//要想了解db2pd命令的全部信息,可以執行db2pd -help來獲得。