




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、db2pd 分析鎖等待簡介: 當(dāng)多個(gè) DB2® 用戶并發(fā)地訪問一個(gè)數(shù)據(jù)庫時(shí),鎖等待會(huì)導(dǎo)致響應(yīng)變慢。鎖等待是臨時(shí)性的,因而難以捕捉。然而,當(dāng)出現(xiàn)鎖等待情形時(shí),需要由數(shù)據(jù)庫管理員負(fù)責(zé)確定鎖等待的原因。本文通過例子演示如何使用用于 DB2 for Linux®, UNIX®, and Windows® 的db2pd 和db2pdcfg 實(shí)用程序完成該任務(wù)。用于鎖監(jiān)視的 db2pd 選項(xiàng)db2pd 是用于監(jiān)視各種 DB2 數(shù)據(jù)庫活動(dòng)以及故障排除的實(shí)用程序。它是從 DB2 V8.2 開始隨 DB2 引擎發(fā)
2、布的一個(gè)獨(dú)立的實(shí)用程序,其外觀和功能類似于 Informixonstat 實(shí)用程序。db2pd 是從命令行以一種可選的交互模式執(zhí)行的。該實(shí)用程序運(yùn)行得非???,因?yàn)樗恍枰@取任何鎖,并且在引擎資源以外運(yùn)行(這意味著它甚至能在一個(gè)掛起的引擎上工作)。通過快照監(jiān)視還可以收集db2pd 提供的很多監(jiān)視器數(shù)據(jù),但是db2pd 和快照監(jiān)視的輸出格式卻有很大不同。這使 DBA 可以選擇更符合用戶需求的監(jiān)視替代方法。本文關(guān)注用于鎖監(jiān)視的db2pd 選項(xiàng)。有一篇由 Sam Poon 撰寫的 developerWorks 文章(參見參考資料 小節(jié))對&
3、#160;db2pd 的監(jiān)視功能作了更廣泛的介紹。下面的圖展示了用于鎖監(jiān)視的 db2pd 選項(xiàng):圖 1. 用于鎖監(jiān)視的 db2pd 選項(xiàng)· TranHdl:用于指定事務(wù)句柄,以便只監(jiān)視由特定事務(wù)持有的鎖。· showlocks:這個(gè)子選項(xiàng)將鎖名稱擴(kuò)展成有意義的解釋。對于一個(gè)行鎖,該選項(xiàng)顯示以下信息:表空間 ID、表 ID、分區(qū) ID、頁和槽。通過使用編目視圖SYSCAT.TABLES 上的一個(gè)查詢,很容易將表空間 ID 和表 ID 映射到相應(yīng)的表名:清單 1. 將表空間 ID、表 ID 映射到表模式、表名 SELE
4、CT TABSCHEMA, TABNAMEFROM SYSCAT.TABLESWHERE TBSPACEID = tbspaceid AND TABLEID = tableid ·· wait:如果指定 wait 子選項(xiàng),則 db2pd 只顯示事務(wù)當(dāng)前正在等待的鎖,以及對等待情形負(fù)責(zé)的鎖。這個(gè)子選項(xiàng)大大簡化了鎖等待分析,因?yàn)樗鼘⑤敵鱿拗茷閰⑴c鎖等待情形的鎖。· db2pd database 和 file 選項(xiàng)不是特定于鎖監(jiān)視的,但是適用于(幾乎)所有 db2pd 調(diào)用。dat
5、abase 選項(xiàng)將 db2pd 返回的監(jiān)視器數(shù)據(jù)限制為某個(gè)數(shù)據(jù)庫的監(jiān)視器數(shù)據(jù)。而file 選項(xiàng)則允許定義一個(gè)文件,以便將db2pd 輸出寫到該文件。鎖等待分析場景接下來,我們開始使用前面介紹的 db2pd 選項(xiàng)來分析一個(gè)示例鎖等待情形。為此,我們創(chuàng)建 DB2 SAMPLE 數(shù)據(jù)庫:清單 2. 創(chuàng)建 SAMPLE 數(shù)據(jù)庫 db2sampl 用戶 A 執(zhí)行事務(wù) A,以根據(jù)每個(gè)經(jīng)理的薪水為他們提供 10% 的獎(jiǎng)金:清單 3. 事務(wù) A 執(zhí)行的更新操作 UPDATE EMPLOYEESET B
6、ONUS = SALARY * 0.1WHERE JOB = 'MANAGER' 當(dāng)事務(wù) A 仍然在運(yùn)行(因?yàn)橛脩?A 還沒有使用 COMMIT 或 ROLLBACK 終止該事務(wù))時(shí),用戶 B 執(zhí)行事務(wù) B,以將每個(gè)雇員的薪水提高 2%:清單 4. 事務(wù) B 執(zhí)行的更新操作 UPDATE EMPLOYEESET SALARY = SALARY * 0.02 由于事務(wù) B 沒有完成,用戶 B 請求 DBA 確定問題的原因。于是,DBA 調(diào)用 db2pd,看是否存在鎖等待情形:清單 5. 檢查鎖等待情形 db2pd -db samp
7、le -locks wait showlocksDatabase Partition 0 - Database SAMPLE - Active - Up 3 days 08:33:05Locks:Address TranHdl Lockname Type Mode Sts Owner Dur 0x050A0240 6 02000600050040010000000052 Row .X W 2 1 0x050A0DB0 2 02000600050040010000000052 Row .X G 2 1 HoldCount Att ReleaseFlg0 0x00 0x40000000 Tbspa
8、ceID 2 TableID 6 PartitionID 0 Page 320 Slot 50 0x00 0x40000000 TbspaceID 2 TableID 6 PartitionID 0 Page 320 Slot 5 db2pd 報(bào)告 ID 為 2 的表空間中一個(gè) ID 為 6 的表上有一個(gè)行鎖存在鎖等待情形。通過檢查 SYSCAT.TABLES,DBA 斷定表EMPLOYEE 上的確存在鎖等待。清單 6. 確定鎖等待情形所涉及的表 SELECT TABSCHEMA, TABNAMEFROM SYSCAT.TABLESWHERE TBSPACEID
9、= 2 AND TABLEID = 6TABSCHEMA TABNAME-FECHNER EMPLOYEE 1 record(s) selected. 對于事務(wù) 2(列 TranHdl),db2pd -locks 輸出的 status 列(Sts)顯示一個(gè) “G”。G 代表 “granted”,意即事務(wù)句柄為 2 的事務(wù)擁有行鎖。此外,列Mode 表明,事務(wù) 2 持有的是一個(gè) X 鎖。等待的事務(wù)(列Sts 中顯示 “W”(“wait”)的事務(wù))是句柄為 6 的事務(wù)。該事務(wù)正在與事務(wù) 2 請求同一個(gè)行上的 X 鎖。通過查看Owner 列(顯示事務(wù)
10、 2 是鎖的所有者)和比較Lockname(對于 db2pd -locks 中的兩個(gè)條目是相同的),可以看到這一點(diǎn)。接下來,DBA 將事務(wù)句柄映射到應(yīng)用程序。這可以使用另一個(gè) db2pd 選項(xiàng) -transactions 來完成:清單 7. 將事務(wù)句柄映射到應(yīng)用程序 db2pd -db sample -transactionsDatabase Partition 0 - Database SAMPLE - Active - Up 3 days 08:34:47Transactions:Address AppHandl nod-inde
11、x TranHdl Locks State Tflag Tflag20x05141880 30 000-00030 2 9 WRITE 0x00000000 0x000000x05144880 34 000-00034 6 5 WRITE 0x00000000 0x00000 這個(gè) db2pd 調(diào)用的輸出表明,事務(wù) 2(列 TranHdl)是由應(yīng)用程序 30(列 AppHandl)執(zhí)行的,而事務(wù) 6 是由應(yīng)用程序 34 執(zhí)行的。這兩個(gè)事務(wù)都正在對數(shù)據(jù)庫執(zhí)行寫更改(列State = WRITE)。所以 DBA 現(xiàn)在知道,應(yīng)用程序 30 正持有應(yīng)用
12、程序 34 所等待的鎖。要獲得關(guān)于鎖等待情形涉及的應(yīng)用程序的更多信息,可使用 -agents 選項(xiàng)調(diào)用 db2pd。該選項(xiàng)打印代表應(yīng)用程序運(yùn)行的代理的信息。注意,-agents 是一個(gè)實(shí)例級(jí)選項(xiàng),這意味著不需要指定一個(gè)數(shù)據(jù)庫(實(shí)際上,當(dāng)指定一個(gè)數(shù)據(jù)庫時(shí),db2pd 打印出一條警告,并忽略 database 選項(xiàng))。清單 8. 獲得關(guān)于應(yīng)用程序和相應(yīng)代理的信息 db2pd -agentsDatabase Partition 0 - Active - Up 3 days 08:35:42Agents:Current agents: 2Idle ag
13、ents: 0Active coord agents: 2Active agents total: 2Pooled coord agents: 0Pooled agents total: 0Address AppHandl nod-index AgentTid Priority Type State0x04449BC0 34 000-00034 3392 0 Coord Inst-Active0x04449240 30 000-00030 2576 0 Coord Inst-ActiveClientPid Userid ClientNm Rowsread Rowswrtn LkTmOt DBN
14、ame3916 USER_B db2bp.ex 43 43 NotSet SAMPLE2524 USER_A db2bp.ex 153 14 NotSet SAMPLE 在 db2pd -agents 輸出中,DBA 可以看到使用應(yīng)用程序 30 和 34 的用戶的 ID(列 Userid):應(yīng)用程序 30 是由 USER_A 執(zhí)行的,而應(yīng)用程序 34 是由 USER_B 執(zhí)行的。只有當(dāng)每個(gè)用戶都有一個(gè)單獨(dú)的數(shù)據(jù)庫授權(quán) ID 時(shí),才可能出現(xiàn)那樣的應(yīng)用程序與用戶 ID 之間的映射。通常,這對于在應(yīng)用服務(wù)器上運(yùn)行的應(yīng)用程序是不可能的,因?yàn)檫@些應(yīng)用程序使用連接池,連接不是
15、個(gè)人化的。關(guān)于每個(gè)應(yīng)用程序的更多信息則由 db2pd 選項(xiàng) -applications 提供:清單 9. 獲得關(guān)于應(yīng)用程序的更多信息 db2pd -db sample -applicationsDatabase Partition 0 - Database SAMPLE - Active - Up 3 days 08:36:14Applications:Address AppHandl nod-index NumAgents CoorTid Status 0x04AF8080 34 000-00024 1 3940 Lock-wait 0x0384196
16、0 30 000-00020 1 2548 UOW-Waiting C-AnchID C-StmtUID L-AnchID L-StmtUID Appid195 1 0 0 *LOCAL.DB2.0611221956370 0 60 1 *LOCAL.DB2.061122195609 Status 列確認(rèn)了 DBA 已經(jīng)知道的一些東西:應(yīng)用程序 34 處在鎖等待狀態(tài)。但是這并不新鮮,于是 DBA 將注意力集中在列C-AnchID/C-StmtUID 和L-AnchID/L-StmtUID 上?!癈” 代表當(dāng)前(current),“L” 代表最近(last)的錨 I
17、D/語句 UID。這些 ID 可用于標(biāo)識(shí)應(yīng)用程序最近執(zhí)行的 SQL 語句和應(yīng)用程序當(dāng)前執(zhí)行的語句。為此,可以用-dynamic 選項(xiàng)調(diào)用db2pd。該選項(xiàng)顯示數(shù)據(jù)庫動(dòng)態(tài)語句緩存的內(nèi)容:清單 10. 檢查動(dòng)態(tài)語句緩存的內(nèi)容 db2pd -db sample -dynamicDatabase Partition 0 - Database SAMPLE - Active - Up 3 days 08:37:39Dynamic Cache:Current Memory Used 187188Total Heap Size 1271398Cache Overflow Flag 0Number
18、of References 2Number of Statement Inserts 3Number of Statement Deletes 0Number of Variation Inserts 2Number of Statements 3Dynamic SQL Statements:Address AnchID StmtUID NumEnv NumVar NumRef NumExe 0x056CEBD0 60 1 1 1 1 1 0x056CE850 180 1 0 0 0 0 0x056CFEA0 195 1 1 1 1 1 TextUPDATE EMPLOYEE SET BONU
19、S = SALARY * 0.1 WHERE JOB = 'MANAGER'SET CURRENT LOCALE LC_CTYPE = 'de_DE'UPDATE EMPLOYEE SET SALARY = SALARY * 0.02Dynamic SQL Environments:Address AnchID StmtUID EnvID Iso QOpt Blk0x056CECD0 60 1 1 CS 5 B0x056D30A0 195 1 1 CS 5 BDynamic SQL Variations:Address AnchID StmtUID EnvID
20、VarID NumRef Typ 0x056CEEB0 60 1 1 1 1 4 0x056D3220 195 1 1 1 1 4 Lockname010000000100000001003C005601000000010000000100C30056 -applications 輸出與 -dynamic 輸出之間的映射很簡單:應(yīng)用程序 34(處于鎖等待狀態(tài))當(dāng)前正在執(zhí)行當(dāng)前錨 ID 195 和當(dāng)前語句 ID 1 所標(biāo)識(shí)的 SQL 語句。在 db2pd -dynamic 輸出的Dynamic SQL Statements 部分中,那些
21、 ID 可以映射到以下 SQL 語句:清單 11. 應(yīng)用程序 34 執(zhí)行的 SQL 語句 UPDATE EMPLOYEE SET SALARY = SALARY * 0.02 持有鎖的應(yīng)用程序 30 最近執(zhí)行的 SQL 語句是最近錨 ID 60 和最近語句 ID 1 所標(biāo)識(shí)的 SQL 語句。那些 ID 可以映射到以下 SQL 語句:清單 12. 應(yīng)用程序 30 執(zhí)行的 SQL 語句 UPDATE EMPLOYEE SET BONUS = SALARY * 0.1 WHERE JOB = 'MANAGER' 注意,db2pd -dynamic 輸出包含另一個(gè)通常難以發(fā)現(xiàn)
22、的有趣信息:Dynamic SQL Environments 部分的列Iso中顯示了被執(zhí)行的動(dòng)態(tài) SQL 語句的隔離級(jí)別(UR = Uncommitted Read,CS = Cursor Stability,RS = Read Stability,RR = Repeatable Read)。我們來總結(jié)一下 DBA 就用戶 B 的應(yīng)用程序被掛起的原因有什么發(fā)現(xiàn):· 掛起是由表 EMPLOYEE 上一個(gè)獨(dú)占式的行鎖導(dǎo)致的。· 持有鎖的事務(wù)屬于用戶 A 執(zhí)行的一個(gè)應(yīng)用程序。而用戶 B 的事務(wù)正在等待那個(gè)鎖。· 兩條有沖突的語句都是表
23、60;EMPLOYEE 上的 UPDATE 語句。有了這些信息,DBA 可以開始采取一些必要的步驟來解決鎖等待狀況,例如建議用戶 A 終止事務(wù),或者強(qiáng)制關(guān)閉用戶 A 的應(yīng)用程序。此外,可以采取措施避免將來出現(xiàn)那樣的狀況,例如配置 DB2 控制器(governor),使之自動(dòng)終止運(yùn)行時(shí)間過長的事務(wù)。在這個(gè)示例場景中,db2pd 被連續(xù)執(zhí)行數(shù)次,每次使用一個(gè)單獨(dú)的選項(xiàng)?,F(xiàn)實(shí)中不會(huì)出現(xiàn)這樣的情況。相反,db2pd 只被調(diào)用一次,調(diào)用時(shí)同時(shí)使用前面介紹的所有選項(xiàng):清單 13. 分析鎖等待情形所需的帶有所有選項(xiàng)的單個(gè) db2pd 調(diào)用
24、 db2pd -db sample -locks wait showlocks -transactions -agents -applications -dynamic -file db2pd.out -repeat 15 40 產(chǎn)生的輸出由針對每個(gè)選項(xiàng)的輸出組成,各部分輸出之間的順序與各選項(xiàng)在 db2pd 調(diào)用中的順序一致。而且,請注意 db2pd 調(diào)用最后的 2 個(gè)附加選項(xiàng):· -file 表明 db2pd 輸出應(yīng)該被寫到一個(gè)文件。在示例調(diào)用中,輸出被寫到文件 db2pd.out 中。
25、83; -repeat 表明 db2pd 應(yīng)該每隔 15 秒執(zhí)行一次,共執(zhí)行 40 次(即每隔 15 秒執(zhí)行一次,共執(zhí)行 10 分鐘)。每次執(zhí)行的輸出被附加到-file 選項(xiàng)指定的文件后面。-file 和 -repeat 選項(xiàng)對于在一段時(shí)間內(nèi)監(jiān)視數(shù)據(jù)庫活動(dòng)比較有用。對于鎖等待分析,這兩個(gè)選項(xiàng)可以幫助捕捉只存在一小段時(shí)間的鎖等待情形。例如,如果數(shù)據(jù)庫參數(shù)LOCKWAIT 被設(shè)置為 20 秒,一個(gè)等待鎖的事務(wù)在過了 20 秒的等待時(shí)間后被回滾。為了捕捉那樣的鎖等待情形,db2pd 的時(shí)間間隔必須設(shè)置為比 20
26、 秒更短的時(shí)間間隔,例如例子中的 15 秒。捕捉罕見的鎖超時(shí)有時(shí)候,鎖等待情形會(huì)導(dǎo)致鎖超時(shí),而鎖超時(shí)又會(huì)導(dǎo)致事務(wù)被回滾。鎖等待導(dǎo)致鎖超時(shí)所需的時(shí)間段由數(shù)據(jù)庫配置參數(shù) LOCKTIMEOUT 指定。鎖超時(shí)分析最大的問題是,不知道下一次的鎖超時(shí)何時(shí)發(fā)生。為了捕捉死鎖,可以創(chuàng)建一個(gè)死鎖事件監(jiān)視器。每當(dāng)出現(xiàn)死鎖時(shí),這個(gè)死鎖事件監(jiān)視器便寫一個(gè)條目。但是,對于鎖超時(shí)就沒有類似的事件監(jiān)視器。所以到 DB2 9® 為止,捕捉鎖超時(shí)的惟一方法還是連續(xù)的db2pd 或快照監(jiān)視(對于db2pd,和前面解釋的一樣,-file 和 -repeat 選
27、項(xiàng)可用于連續(xù)的鎖監(jiān)視)。DB2 9 包含了一種新的機(jī)制,用于在數(shù)據(jù)庫出現(xiàn)故障或發(fā)生事件時(shí)收集監(jiān)視器數(shù)據(jù):db2cos 腳本。為了捕捉鎖超時(shí)事件,可以配置數(shù)據(jù)庫,使之每當(dāng)出現(xiàn)鎖超時(shí)時(shí)啟動(dòng)db2cos 腳本。在db2cos 腳本中,和前面討論的一樣,可以以相同的選項(xiàng)調(diào)用 db2pd。我們來看一個(gè)示例場景,該場景演示了如何用db2cos 腳本捕捉鎖超時(shí)。對于這個(gè)場景,假設(shè) DBA 將數(shù)據(jù)庫鎖超時(shí)值設(shè)為 10 秒:清單 14. 更新鎖超時(shí)設(shè)置 UPDATE DB CFG FOR SAMPLE USING LOCKTIMEOUT 10 為了每當(dāng)出現(xiàn)鎖超時(shí)
28、時(shí)啟動(dòng) db2cos 腳本,DBA 調(diào)用 db2pdcfg 實(shí)用程序,如下所示:清單 15. 使用 db2pdcfg 配置 db2cos 腳本的調(diào)用 db2pdcfg -catch locktimeout count=1 -catch 選項(xiàng)指定應(yīng)該自動(dòng)導(dǎo)致調(diào)用 db2cos 腳本的故障或事件。對于鎖超時(shí)事件,可以指定字符串locktimeout?;蛘撸梢灾付ㄅc鎖超時(shí)相應(yīng)的 SQL 錯(cuò)誤碼和原因碼:清單 16. 用于捕捉鎖超時(shí)的另一種 db2pdcfg 調(diào)用 db2
29、pdcfg -catch 911,68 count=1 除了一些字符串值和 SQL 代碼之外,db2pdcfg 還接受內(nèi)部 DB2 錯(cuò)誤碼。所以,用這種方式可以捕捉很多數(shù)據(jù)庫故障和事件。鎖超時(shí)事件只是使用db2pdcfg 和db2cos 的一個(gè)例子。如果 count 子選項(xiàng)的值為 1,則表明當(dāng)出現(xiàn)鎖超時(shí)事件時(shí)應(yīng)該執(zhí)行 db2cos 腳本。db2pdcfg 通過以下輸出確認(rèn)錯(cuò)誤捕捉的設(shè)置:清單 17. db2pdcfg 對錯(cuò)誤捕捉設(shè)置的確認(rèn) Error Catch #1 Sqlcode: 0 Re
30、asonCode: 0 ZRC: -2146435004 ECF: 0 Component ID: 0 LockName: Not Set LockType: Not Set Current Count: 0 Max Count: 1 Bitmap: 0x4A1 Action: Error code catch flag enabled Action: Execute sqllib/db2cos callout script Action: Produce stack trace in db2diag.log db2diag.log 報(bào)告中也包括錯(cuò)誤捕捉設(shè)置??梢允褂?#160;db
31、2diag 實(shí)用程序(用于檢查 db2diag.log 內(nèi)容的一個(gè)有用的實(shí)用程序)過濾 db2diag.log 文件,而不必在一個(gè)文本編輯器中打開它:清單 18. 在 db2diag.log 中確認(rèn)錯(cuò)誤捕捉設(shè)置 db2diag -g funcname:=pdErrorCatch2006-12-18-13.37.25.177000+060 I727480H285 LEVEL: EventPID : 4648 TID : 3948 PROC : db2syscs.exeINSTANCE: DB2 NODE : 000
32、FUNCTION: DB2 UDB, RAS/PD component, pdErrorCatch, probe:30START : Error catch set for ZRC -2146435004 ZRC -2146435004 是用于鎖超時(shí)的 DB2 內(nèi)部錯(cuò)誤碼??梢酝ㄟ^下面的 db2diag 調(diào)用查看這些錯(cuò)誤碼:清單 19. 使用 db2diag 查看 DB2 內(nèi)部錯(cuò)誤碼的含義 db2diag -rc -2146435004 通過使用 db2pdcfg,數(shù)據(jù)庫引擎現(xiàn)在被配置為每當(dāng)出現(xiàn)鎖超時(shí)時(shí)調(diào)用 db2cos&
33、#160;腳本。db2cos 腳本收集判別鎖超時(shí)原因所需的所有監(jiān)視器信息。為此,DBA 必須修改db2cos 腳本,以便用已知的選項(xiàng)調(diào)用db2pd。可以在下面的子目錄中找到 db2cos 腳本:· Windows:DB2 install directoryBINdb2cos.bat,例如 C:Program FilesIBMSQLLIBBINdb2cos.bat· UNIX/Linux:Instance owner home/sqllib/bin/db2cos在 Microsoft Windows® 上,默認(rèn)的
34、160;db2cos.bat 腳本看上去如下所示:清單 20. Windows 上默認(rèn) db2cos.bat 的內(nèi)容 setlocal:iterargsif %0. = . goto iterdone if /i %0. = INSTANCE. set INSTANCE=%1 if /i %0. = DATABASE. set DATABASE=%1 if /i %0. = TIMESTAMP. set TIMESTAMP=%1 if /i %0. = APPID. set APPID=%1 if /i %0. = PID. set PID=%1 if /i %0
35、. = TID. set TID=%1 if /i %0. = DBPART. set DBPART=%1 if /i %0. = PROBE. set PROBE=%1 if /i %0. = FUNCTION. set FUNCTION=%1 if /i %0. = REASON. set REASON=%1 if /i %0. = DESCRIPTION. set DESCRIPTION=%1 if /i %0. = DiAGPATH. set DIAGPATH=%1 shiftgoto iterargs:iterdoneif %DATABASE%. = . goto no_databa
36、se db2pd -db %DATABASE% -inst >> %DIAGPATH%db2cos%PID%TID%.%DBPART% goto exit:no_database db2pd -inst >> %DIAGPATH%db2cos%PID%TID%.%DBPART%:exit 對于數(shù)據(jù)庫級(jí)的事件或故障,默認(rèn)的 db2cos 腳本用 -db 和 -inst 選項(xiàng)調(diào)用db2pd。DBA 用一個(gè)db2pd 調(diào)用替換相應(yīng)的行,該調(diào)用收集鎖超時(shí)分析所需的監(jiān)視器數(shù)據(jù):清單 21. 更改 db
37、2cos 腳本,以收集用于鎖超時(shí)分析的數(shù)據(jù) if %DATABASE%. = . goto no_database db2pd -db %DATABASE% -locks wait -transactions -agents -applications -dynamic >> %DIAGPATH%db2cos%PID%TID%.%DBPART% goto exit 現(xiàn)在,db2cos 腳本已準(zhǔn)備好,DBA 可以坐等下一次鎖超時(shí)事件的發(fā)生。假設(shè)像之前描述的那樣,用戶 A 與 B 之間發(fā)生相同的鎖情形。但是,這一次設(shè)置了 LOCKTIMEOUT,因此過了
38、10 秒(LOCKTIMEOUT = 10)之后用戶 B 的事務(wù)被回滾。用戶 B 通知 DBA 回滾自己的事務(wù),并且收到 SQL 錯(cuò)誤消息 -911 和原因碼 68(SQL code -911 / reason code 68 = locktimeout)。于是,DBA 檢查通過自動(dòng)調(diào)用db2cos 腳本收集到的監(jiān)視器數(shù)據(jù)。首先,DBA 用鎖超時(shí)內(nèi)部錯(cuò)誤碼調(diào)用 db2diag,以確定鎖超時(shí)發(fā)生的確切時(shí)間:清單 22. 在 db2diag.log 中檢查鎖超時(shí)事件的時(shí)間點(diǎn) db2diag -g data:=-21464350042006-12-18-14.27.24.656000+060 I6857H409 LEVEL: EventPID : 2968 TID : 2932 PROC : db2syscs.exeINSTANCE: DB2 NODE : 000 DB : SAMPLEAPPHDL : 0-21 APP
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 8 我們受特殊保護(hù)(教學(xué)設(shè)計(jì))2024-2025學(xué)年統(tǒng)編版道德與法治六年級(jí)上冊
- 10:原子彈大爆炸(教學(xué)設(shè)計(jì))
- 2024-2025學(xué)年新教材高中生物 第2章 細(xì)胞工程 第2節(jié) 第1課時(shí) 動(dòng)物細(xì)胞培養(yǎng)教學(xué)實(shí)錄 新人教版選擇性必修3
- 2024年五年級(jí)語文上冊 第七單元 語文園地七配套教學(xué)實(shí)錄 新人教版
- 15 堅(jiān)持才會(huì)有收獲 教學(xué)設(shè)計(jì)-2023-2024學(xué)年道德與法治二年級(jí)下冊統(tǒng)編版
- 20 陀螺教學(xué)設(shè)計(jì)-2024-2025學(xué)年四年級(jí)上冊語文統(tǒng)編版
- 6 狼牙山五壯士教學(xué)設(shè)計(jì)-2024-2025學(xué)年六年級(jí)上冊語文統(tǒng)編版
- 2024-2025學(xué)年高中地理 第1章 環(huán)境與環(huán)境問題 第3節(jié) 解決環(huán)境問題的基本思想教學(xué)實(shí)錄 新人教版選修6
- 2024-2025學(xué)年高中政治 專題2 4 切實(shí)保護(hù)知識(shí)產(chǎn)權(quán)教學(xué)實(shí)錄 新人教版選修5
- 六年級(jí)上冊語文《青山不老》公開課教學(xué)設(shè)計(jì)
- DB62∕T 4134-2020 高速公路服務(wù)區(qū)設(shè)計(jì)規(guī)范
- 中電朝陽250兆瓦智慧風(fēng)儲(chǔ)一體化風(fēng)電項(xiàng)目環(huán)評報(bào)告書
- 青島版科學(xué)一年級(jí)下冊《塑料》教學(xué)設(shè)計(jì)
- 專利文件撰寫殷紅梅課件
- 做一個(gè)幸福教師
- 海上風(fēng)電場+風(fēng)機(jī)基礎(chǔ)介紹
- 國家自然科學(xué)基金申請標(biāo)書模板
- GB T 20219-2015 絕熱用噴涂硬質(zhì)聚氨酯泡沫塑料(高清版)
- 車間斷針記錄表
- 人人有事做事事有人做
- MT_T 693-2019-礦用無線電波透視儀通用技術(shù)條件_(高清版)
評論
0/150
提交評論