|
最近,剛跳槽到一新公司,就遇到生產(chǎn)數(shù)據(jù)庫晚上突然出現(xiàn)大面積中斷,并持續(xù)近一小時,而發(fā)生事故時,我沒有在現(xiàn)場,錯過了直接獲取信息的機(jī)會;過后boss要求追查原因,于是艱難的排查過程開始了。
開始以為是數(shù)據(jù)庫某個JOB運行出現(xiàn)異常引起或者是因為程序里面哪個鳥人寫了垃圾語句造成了大面積的死鎖,于是將收集的trace信息拿到本地分析,從收集到的trace信息看,數(shù)據(jù)庫在19:49:28時出現(xiàn)了鎖,系統(tǒng)cancel了它,而且是連續(xù)三個,之后數(shù)據(jù)庫大部分連接都是Abort了。 初步估計應(yīng)該是死鎖了,首先想到的就是因為數(shù)據(jù)庫更新語句造成,于是查找Agent里面是否有對應(yīng)時間的JOB運行,結(jié)果沒有匹配的,然后分析trace文件里面是否有該時間段內(nèi)運行的長Update、Insert或者Delete語句,查了半天也沒發(fā)現(xiàn),汗。。。,調(diào)查長查詢,還是沒有,狂汗。。。
Trace文件分析來分析去也沒辦法定位到具體語句(Trace 文件中只抓取了運行時間超過2秒或者讀大于10000的記錄),看來問題不是那么簡單了;光根據(jù)Trace文件信息想要找到兇手估計不可能了,于是把Windows日志和數(shù)據(jù)庫錯誤日志都查了一遍,也沒有發(fā)現(xiàn)任何異常,難道是無頭案。。。(沒查到任何信息,擔(dān)心飯碗不保了)
想來想去,也問了一些牛人,都沒有啥結(jié)果,看來通過手頭上現(xiàn)有的資料估計要找出問題是沒多少希望了,只能另辟蹊徑;既然可以肯定是因為死鎖造成的,那說明數(shù)據(jù)庫里面肯定存在資源的不一致訪問或者競爭,那就從死鎖下手,于是先清空掉當(dāng)前的數(shù)據(jù)庫錯誤日志文件,再打開1204和1222跟蹤標(biāo)志,等待魚兒上鉤。
DBCC errorlog DBCC TRACEON (1204, 1222, -1); DBCC tracestatus
it知識庫:一次死鎖追蹤經(jīng)歷,轉(zhuǎn)載需保留來源!
鄭重聲明:本文版權(quán)歸原作者所有,轉(zhuǎn)載文章僅為傳播更多信息之目的,如作者信息標(biāo)記有誤,請第一時間聯(lián)系我們修改或刪除,多謝。