国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

DB2數(shù)據(jù)庫有鎖了怎么辦

IT那活兒 / 2436人閱讀
DB2數(shù)據(jù)庫有鎖了怎么辦

點(diǎn)擊上方藍(lán)字關(guān)注我們


在日常運(yùn)維中經(jīng)常會(huì)遇到數(shù)據(jù)庫出現(xiàn)了鎖,導(dǎo)致前臺(tái)應(yīng)用運(yùn)行緩慢,甚至應(yīng)用無法使用的問題,由于在運(yùn)維過程中,會(huì)出現(xiàn)各種各樣的問題,遇到問題,數(shù)據(jù)庫管理員會(huì)手忙腳亂,不知道從何處下手。如果著手分析的方向發(fā)生了錯(cuò)誤,時(shí)間更是浪費(fèi)嚴(yán)重,問題得不到及時(shí)解決,甚至有可能采取了錯(cuò)誤的措施,導(dǎo)致更嚴(yán)重的后果。

其實(shí)導(dǎo)致數(shù)據(jù)庫出現(xiàn)問題的原因有很多種,這個(gè)時(shí)候就需要我們通過自己學(xué)到的知識(shí),經(jīng)驗(yàn)的積累,來快速的定位問題的原因,下面跟著我來一起了解下DB2數(shù)據(jù)庫有鎖了該怎么處理;


一、鎖鏈分析和處理


發(fā)現(xiàn)數(shù)據(jù)庫中有鎖,我們首先查看鎖鏈情況,查看是被那個(gè)會(huì)話鎖的,可以通過DB2的工具db2top來查看

db2top-d 數(shù)據(jù)庫名

db2top-d sample

然后輸入U(xiǎn)可以看到等待信息

在輸入L可以看到鎖鏈信息

在這個(gè)輸出里面,7這個(gè)應(yīng)用是鎖的持有者,其他都是等待者。下一步就是分析7 在執(zhí)行什么語句,是否需要?dú)ⅲ欠裥枰獌?yōu)化。

然而對(duì)于已經(jīng)堵塞的Db2數(shù)據(jù)庫,db2top可能根本打不開。這個(gè)時(shí)候就需要db2pd工具來查看鎖等待的信息。


二、通過db2pd 查看鎖等待


db2pd-d smaple -wlock

在這個(gè)db2pd的輸出里面,第八列Sts就是持有者(G)和等待者(W)。第四列l(wèi)ockname是對(duì)應(yīng)的鎖。需要綜合這兩個(gè)信息,才能知道應(yīng)用的等待關(guān)系。


三、分析鎖問題


通過上面的信息,找到了鎖的持有者源頭,但是現(xiàn)在還需要知道持有者在運(yùn)行什么語句。這個(gè)可以通過db2pd的application選項(xiàng)和dynamic選項(xiàng)綜合分析出當(dāng)前正在執(zhí)行和上次執(zhí)行的語句。

db2pd查看application

db2pd-d sample -application 7

在db2pd工具的application輸出里面,C-AnchID和C-StmtUID結(jié)合起來指向當(dāng)前正在運(yùn)行的語句。L-AnchID和L-StmtUID結(jié)合起來指向上一次執(zhí)行的語句。要獲得詳細(xì)的語句,需要從dynamiccache 里找到。圖中C-AnchID和C-StmtUID都是0,也就是當(dāng)前應(yīng)用沒有執(zhí)行任何語句。而L-AnchID和L-StmtUID是201和1,上一次執(zhí)行的語句是可以獲取到的。

db2pd查看動(dòng)態(tài)語句

db2pd-d sample -dynamic anch=201

基于L-AnchID為201去查dynamiccache,可以看到StmtUID為1的sql語句是”insertinto t2values(5,cc)”。至此就得到了鎖的持有者正在運(yùn)行的語句或者最后運(yùn)行的語句是什么。這樣就可以和開發(fā)一起分析這個(gè)問題是什么原因?qū)е碌摹?/p>

同樣的方法我們也可以找到是什么語句在等待

可以看出是select* from t2這個(gè)語句在等待


四、處理鎖問題


通常異常出現(xiàn)鎖問題的原因分兩種:

1、不常見的SQL:當(dāng)前SQL不是業(yè)務(wù)常用SQL,例如新上線的功能,管理節(jié)點(diǎn)發(fā)起的維護(hù)SQL,或者個(gè)人后臺(tái)發(fā)起的SQL等。因?yàn)闇y試不充分,沒有評(píng)估好對(duì)生產(chǎn)業(yè)務(wù)的影響。這種情況下一般選擇先殺掉,并且控制不要再次發(fā)起,等優(yōu)化完再上線。

2、常見SQL突然變慢:例如執(zhí)行計(jì)劃發(fā)生變化,導(dǎo)致SQL變慢,從而促發(fā)了鎖競爭的問題。這種情況僅僅殺SQL可能是不管用的,因?yàn)镾QL還會(huì)被調(diào)用起來。這時(shí)需要立刻獲取SQL的查詢計(jì)劃,抓緊時(shí)間調(diào)優(yōu)。例如運(yùn)行runstats,創(chuàng)建必要的索引等方式。

以上是我在虛擬做的鎖等待的實(shí)驗(yàn),來帶領(lǐng)大家一起了解處理鎖問題的分析思路,在實(shí)際運(yùn)維中鎖的問題可能需要更加復(fù)雜,但是只要大家能耐心的分析,一定能解決問題。


END


文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/130032.html

相關(guān)文章

  • synchronized鎖了什么

    摘要:也有人稱其為同步鎖。既然是鎖,其必然有鎖的東西,下面先會(huì)簡單介紹一下,再通過一個(gè)示例代碼展示鎖了什么。從而可以證明并不是鎖定方法內(nèi)訪問的變量鎖定的是同一個(gè)監(jiān)視器對(duì)象監(jiān)視的代碼 前言 synchronized翻譯為中文的意思是同步的,它是Java中處理線程安全問題常用的關(guān)鍵字。也有人稱其為同步鎖。既然是鎖,其必然有鎖的東西,下面先會(huì)簡單介紹一下synchronized,再通過一個(gè)示例代碼...

    fish 評(píng)論0 收藏0
  • 非常硬核的技術(shù)知識(shí)-CopyOnWrite思想

    摘要:而且只要他更新完畢對(duì)修飾的變量賦值,那么讀線程立馬可以看到最新修改后的數(shù)組,這是保證的。這個(gè)時(shí)候,就采用了思想來實(shí)現(xiàn)這個(gè),避免更新的時(shí)候阻塞住高頻的讀操作,實(shí)現(xiàn)無鎖的效果,優(yōu)化線程并發(fā)的性能。 今天聊一個(gè)非常硬核的技術(shù)知識(shí),給大家分析一下CopyOnWrite思想是什么,以及在Java并發(fā)包中的具體體現(xiàn),包括在Kafka內(nèi)核源碼中是如何運(yùn)用這個(gè)思想來優(yōu)化并發(fā)性能的。這個(gè)CopyOnW...

    amc 評(píng)論0 收藏0
  • 基于 Redis 的分布式鎖

    摘要:首先談到分布式鎖自然也就聯(lián)想到分布式應(yīng)用。如基于的唯一索引。基于的臨時(shí)有序節(jié)點(diǎn)。這里主要基于進(jìn)行討論。該命令可以保證的原子性。所以最好的方式是在每次解鎖時(shí)都需要判斷鎖是否是自己的。總結(jié)至此一個(gè)基于的分布式鎖完成,但是依然有些問題。 showImg(https://segmentfault.com/img/remote/1460000014128437?w=2048&h=1365); 前...

    fasss 評(píng)論0 收藏0
  • JAVA 7+ 實(shí)現(xiàn)自動(dòng)鎖(AutoLock)

    摘要:了解自動(dòng)鎖很早就受不了鎖的機(jī)制了每次都需要在去解鎖不僅代碼不美觀而且很麻煩我想能不能實(shí)現(xiàn)加鎖之后自動(dòng)解鎖如果是可以利用析構(gòu)函數(shù)實(shí)現(xiàn)但就想了想好像可以利用的特性對(duì)象只需要實(shí)現(xiàn)接口實(shí)現(xiàn)自動(dòng)鎖我了解如何利用特性寫一個(gè)自動(dòng)鎖那么下面我們開始真正 了解自動(dòng)鎖 很早就受不了 java 鎖的機(jī)制了,每次都需要在 finally 去解鎖, 不僅代碼不美觀,而且很麻煩 我想能不能實(shí)現(xiàn)加鎖之后自動(dòng)解鎖, ...

    Songlcy 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<