1. db2資料庫掛起,含淚求助
hang的問題一般是latch引起,日誌里不會有報錯,資料庫也停不下來,唯一解決的方法就是用db2_kill強殺,然後db2start重新起。如果需要分析db2 hang 的原因,在hang的時候搜集如下數據:
db2pd -latch
db2pd -stack all
如果你們公司有800的服務,可以將收集的數據傳至800讓他們請實驗室分析,因為解析stack和latch引起hang的原因只能IBM的人才能做
2. DB2資料庫發生死鎖了怎麼辦
先定位一下是哪個程序句柄導致的死鎖。
方法一、查看db2diag.log文件
找到DeadLock or Lock timeout 死鎖或鎖超時信息
db2 force application(句柄ID)
直接結束進程即可。
方法二、DB2快照信息
1、看一下DB2快照信息
db2 get snapshot for locks on sample
可以得到類似信息:
資料庫鎖定快照
資料庫名稱 = SAMPLE
資料庫路徑 = D:\IBM\DB2\NODE0000\SQL00001\
輸入資料庫別名 = SAMPLE
掛起的鎖定 = 8
當前已連接的應用程序 = 2
當前正等待鎖定的代理程序數 = 1
應用程序句柄 = 54
應用程序標識 = *LOCAL.DB2.140304192925
序號 = 00001
應用程序名 = db2bp.exe CONNECT
授權標識 = DB2ADMIN
應用程序狀態 = 鎖定等待
應用程序代碼頁 = 1208
掛起的鎖定 = 4
總計等待時間(毫秒) = 247867
鎖定列表
鎖定名稱 = 0x5359534C564C3031DDECEF2841
鎖定屬性 = 0x00000000
發行版標志 = 0x40000000
鎖定計數 = 1
掛起計數 = 0
鎖定對象名 = 2312
對象類型 = 行
表空間名 = IBMDB2SAMPLEREL
表模式 = DB2ADMIN
表名 = TEST
方式 = IX
查看鎖定的詳細信息:db2 get snapshot for locks for application agentid 1728
----(1728是句柄ID)
3、觀察命令db2 list applications的輸出
查看應用程序的狀態是否有鎖定等待(Lock-wait)狀態出現。
執行命令 list applications for db sample show detail;
4、db2 force application(句柄ID)
直接結束進程即可。
3. 解決sql資料庫掛起
1、以 Windows 7 系統為例,點擊開始菜單,在搜索和文件處輸入 regedit (此命令為打開注冊表),然後回車。