无码人妻A片一区二区三区_18禁裸乳无遮挡啪啪无码免费_91精品亚?影视在线?看_人人妻人人爽人人澡AV_国产精品人妻一区二区三区四区_午夜免费影视

中培偉業(yè)IT資訊頻道
您現(xiàn)在的位置:首頁(yè) > IT資訊 > 數(shù)據(jù)庫(kù) > DB2數(shù)據(jù)庫(kù)管理系統(tǒng)是如何解決死鎖的?

DB2數(shù)據(jù)庫(kù)管理系統(tǒng)是如何解決死鎖的?

2020-08-06 17:55:33 | 來(lái)源:中培企業(yè)IT培訓(xùn)網(wǎng)

在眾多數(shù)據(jù)庫(kù)當(dāng)中,雖然DB2數(shù)據(jù)庫(kù)很少見(jiàn),但是應(yīng)用卻十分廣泛。DB2的主要操作環(huán)境是UNIX,Linux,IBMi,z / OS和Windows服務(wù)器版本。DB2的功能也相對(duì)強(qiáng)大,因?yàn)樗哂型暾牟樵儍?yōu)化器,并且其外部連接提高了查詢性能并支持多個(gè)Task并行查詢。同時(shí)DB2還具有良好的網(wǎng)絡(luò)支持功能,每個(gè)子系統(tǒng)可以連接成千上萬(wàn)的分布式用戶,并且可以同時(shí)激活數(shù)千個(gè)活動(dòng)線程,這特別適合于大型分布式應(yīng)用程序系統(tǒng)。那么DB2數(shù)據(jù)庫(kù)管理系統(tǒng)是如何解決死鎖的?

  DB2數(shù)據(jù)庫(kù)管理系統(tǒng)是如何解決死鎖的?

生產(chǎn)環(huán)境里使用的數(shù)據(jù)庫(kù)是DB2。但是最近頻繁出現(xiàn)一個(gè)奇怪的死鎖現(xiàn)象:某一個(gè)select sql 語(yǔ)句總是會(huì)出現(xiàn)死鎖。

按照以往的經(jīng)驗(yàn),通常都是update/delete之類的更新sql語(yǔ)句會(huì)出現(xiàn)死鎖的問(wèn)題。而且這個(gè) select sql 語(yǔ)句是一個(gè)很普通的sql,沒(méi)有任何大數(shù)據(jù)量的處理。

分析這個(gè)死鎖,有很多難以處理的地方。

1、因?yàn)樯a(chǎn)環(huán)境數(shù)據(jù)量大,我們無(wú)法把生產(chǎn)環(huán)境中關(guān)聯(lián)表的數(shù)據(jù)導(dǎo)入到測(cè)試環(huán)境。也就是說(shuō),無(wú)法模擬數(shù)據(jù)量。

2、沒(méi)有任何log輸出。因?yàn)樯a(chǎn)環(huán)境的log輸出級(jí)別是ERROR。

3、無(wú)法在生產(chǎn)環(huán)境進(jìn)行測(cè)試,因?yàn)榭蛻舨辉试S。

4、生產(chǎn)環(huán)境的數(shù)據(jù)庫(kù)無(wú)法開(kāi)啟快照等功能。因?yàn)闀?huì)影響性能。

大家可以想象,在沒(méi)有快照等功能下,分析死鎖就只能靠分析代碼了。但是這個(gè)處理非常復(fù)雜,單憑分析代碼,沒(méi)有任何頭緒。

  階段1:我們懷疑是數(shù)據(jù)量的原因

由于生產(chǎn)環(huán)境的數(shù)據(jù)量特別大,這個(gè)處理還有很多其他表的處理。所以我們懷疑是不是大數(shù)據(jù)量導(dǎo)致系統(tǒng)負(fù)荷過(guò)高,導(dǎo)致了死鎖?于是我們?nèi)〉昧税l(fā)生死鎖時(shí)CPU,硬盤,網(wǎng)絡(luò)等等負(fù)載信息。沒(méi)有找到任何線索。

  階段2:做一個(gè)測(cè)試程序,在測(cè)試環(huán)境中用多線程模擬多用戶去做這個(gè)處理。

為了能夠在開(kāi)發(fā)環(huán)境再現(xiàn)出這個(gè)死鎖,我們做了一個(gè)多線程的測(cè)試程序,模擬多用戶運(yùn)行。可惜,還是沒(méi)有再現(xiàn)出來(lái)。

  階段3:分析測(cè)試環(huán)境數(shù)據(jù)庫(kù)和產(chǎn)品環(huán)境數(shù)據(jù)庫(kù)的差異

此時(shí)我們懷疑還是數(shù)據(jù)量導(dǎo)致的問(wèn)題。于是我們盡可能的將開(kāi)發(fā)環(huán)境的數(shù)據(jù)弄得和產(chǎn)品環(huán)境一樣多。之后在運(yùn)行測(cè)試,還是沒(méi)有再現(xiàn)出來(lái)。

  階段4:分析用戶的操作log

沒(méi)有任何辦法的情況下,我們只好分析用戶的操作log,希望從中找到一點(diǎn)線索。功夫不負(fù)有心人,我們發(fā)現(xiàn),當(dāng)兩個(gè)人同時(shí)進(jìn)行這個(gè)操作的時(shí)候,基本都會(huì)發(fā)生死鎖。所以,我們判斷還是兩個(gè)人同時(shí)操作導(dǎo)致的問(wèn)題。但是,為什么開(kāi)發(fā)環(huán)境上模擬了很多人的操作,卻沒(méi)有發(fā)生死鎖呢?

  階段5:發(fā)現(xiàn)數(shù)據(jù)庫(kù)設(shè)置的問(wèn)題

我們又修改了測(cè)試程序,將模擬的用戶數(shù)量提高,但是很不幸,仍然沒(méi)有再現(xiàn)這個(gè)問(wèn)題。此時(shí)我們注意到了:是不是開(kāi)發(fā)環(huán)境的數(shù)據(jù)庫(kù)設(shè)置和產(chǎn)品環(huán)境的數(shù)據(jù)庫(kù)設(shè)置不同?我們對(duì)比了一下兩個(gè)數(shù)據(jù)庫(kù)的設(shè)置:發(fā)現(xiàn)好多參數(shù)不同。但是我們僅僅關(guān)注了和鎖有關(guān)的設(shè)置,也就是包含 LOCK關(guān)鍵字的設(shè)置。

  階段6:將測(cè)試環(huán)境數(shù)據(jù)庫(kù)和產(chǎn)品環(huán)境數(shù)據(jù)庫(kù)的設(shè)置保持一致

我們將所有和lock有關(guān)的設(shè)置都改成了和產(chǎn)品環(huán)境一直。但是仍然沒(méi)有再現(xiàn)這個(gè)死鎖。終于,一個(gè)人發(fā)現(xiàn),"cur_commit"這個(gè)設(shè)置不同。于是查詢文檔,發(fā)現(xiàn)了 cur_commit的特點(diǎn)。當(dāng) cur_commit = false的時(shí)候,下列情況會(huì)造成死鎖:

線程1插入數(shù)據(jù)A,然后線程2插入數(shù)據(jù)B。

在線程2還沒(méi)有提交事物之前,線程1查詢數(shù)據(jù)A,就會(huì)造成死鎖了。

開(kāi)發(fā)環(huán)境中,cur_commit = true,所以我們一直也模擬不出來(lái)這個(gè)現(xiàn)象。

于是,我們把cur_commit也改成了 false。

  階段7:使用測(cè)試程序去模擬

我們修改了測(cè)試程序,模擬上面兩個(gè)線程的操作,成功地再現(xiàn)了這個(gè)死鎖。錯(cuò)誤的log信息和產(chǎn)品環(huán)境上也是一致的。

  階段8:使用畫面操作去模擬

然后我們修改了程序,使用畫面去操作,也成功地再現(xiàn)了這個(gè)死鎖。

  解決方案:

解決方案很簡(jiǎn)單,就是把查詢語(yǔ)句中的條件加為索引,就不會(huì)出現(xiàn)死鎖了。由于這個(gè)表數(shù)據(jù)量不大,所以性能幾乎沒(méi)有任何影響。

通過(guò)上述介紹,DB2數(shù)據(jù)庫(kù)管理系統(tǒng)是如何解決死鎖的相信大家已經(jīng)清楚了吧,想了解更多關(guān)于DB2數(shù)據(jù)庫(kù)的信息,請(qǐng)繼續(xù)關(guān)注中培偉業(yè)。

主站蜘蛛池模板: 亚洲日本视频在线观看 | 91五月色国产在线观看 | 高潮潮喷奶水飞溅视频无码 | 国内精品国产三级国产 | 四虎www成人影院免费观看 | 亚洲av无码专区亚洲av | 日本一区免费 | 一区一区| 91在线视频网址 | 真人新婚之夜破苞第一次视频 | 又黄又硬又湿又刺激视频免费 | 在线观看色 | 日韩精品午夜 | 无码中文字幕AⅤ精品影院 在线视频不卡欧美 | 在线看av的网址 | 嗯好大好爽高潮了av大片 | 久久精品国产第一区二区三区 | 国产91视频一区二区 | 高清hd写真福利在线播放 | 一级片久久久久久久 | 精品午夜久久 | 色偷偷9999WWW | 51社区在线成人免费视频 | 欧美综合天天夜夜久久 | 欧美一区二区三区人人喊爽 | 欧美日韩成人一区二区 | 殴美黄色大片 | 欧美亚洲日产综合新一区 | 精品久久久久久久一区二区伦理 | 国产爱视频 | 欧美孕交alscan巨交xxx | 伊人网网站 | 女人A级毛片19毛水真多 | 阳茎伸入女人阳道视频免费 | 四虎www成人影院免费观看 | 国产色综合天天综合网 | 亚洲日韩久久综合中文字幕 | 婷婷激情五月AV在线观看 | 动漫AV永久无码精品每日更新 | 国产美女裸体无遮挡免费视频 | 欧美精选一区二区三区 |