电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

DB2死鎖的解決過程全記錄

瀏覽:173日期:2023-03-24 09:22:28

生產環境里使用的數據庫是DB2。但是最近頻繁出現一個奇怪的死鎖現象:某一個select sql 語句總是會出現死鎖。

按照以往的經驗,通常都是update/delete之類的更新sql語句會出現死鎖的問題。而且這個 select sql 語句是一個很普通的sql,沒有任何大數據量的處理。

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

1、因為生產環境數據量大,我們無法把生產環境中關聯表的數據導入到測試環境。也就是說,無法模擬數據量。
2、沒有任何log輸出。因為生產環境的log輸出級別是ERROR。
3、無法在生產環境進行測試,因為客戶不允許。
4、生產環境的數據庫無法開啟快照等功能。因為會影響性能。

大家可以想象,在沒有快照等功能下,分析死鎖就只能靠分析代碼了。但是這個處理非常復雜,單憑分析代碼,沒有任何頭緒。
 
階段1:我們懷疑是數據量的原因
 
由于生產環境的數據量特別大,這個處理還有很多其他表的處理。所以我們懷疑是不是大數據量導致系統負荷過高,導致了死鎖?
于是我們取得了發生死鎖時CPU,硬盤,網絡等等負載信息。沒有找到任何線索。
 
階段2:做一個測試程序,在測試環境中用多線程模擬多用戶去做這個處理。
 
為了能夠在開發環境再現出這個死鎖,我們做了一個多線程的測試程序,模擬多用戶運行。可惜,還是沒有再現出來。
 
階段3:分析測試環境數據庫和產品環境數據庫的差異
 
此時我們懷疑還是數據量導致的問題。于是我們盡可能的將開發環境的數據弄得和產品環境一樣多。
之后在運行測試,還是沒有再現出來。
 
階段4:分析用戶的操作log
 
沒有任何辦法的情況下,我們只好分析用戶的操作log,希望從中找到一點線索。功夫不負有心人,我們發現,當兩個人同時
進行這個操作的時候,基本都會發生死鎖。所以,我們判斷還是兩個人同時操作導致的問題。但是,為什么開發環境上模擬了
很多人的操作,卻沒有發生死鎖呢?
 
階段5:發現數據庫設置的問題
 
我們又修改了測試程序,將模擬的用戶數量提高,但是很不幸,仍然沒有再現這個問題。此時我們注意到了:是不是開發環境的
數據庫設置和產品環境的數據庫設置不同?我們對比了一下兩個數據庫的設置:發現好多參數不同。但是我們僅僅關注了和鎖有關
的設置,也就是包含 LOCK關鍵字的設置。
 
階段6:將測試環境數據庫和產品環境數據庫的設置保持一致
 
我們將所有和lock有關的設置都改成了和產品環境一直。但是仍然沒有再現這個死鎖。終于,一個人發現,"cur_commit"這個設置
不同。于是查詢文檔,發現了 cur_commit的特點。
當 cur_commit = false的時候,下列情況會造成死鎖:
線程1插入數據A,然后線程2插入數據B。
在線程2還沒有提交事物之前,線程1查詢數據A,就會造成死鎖了。
開發環境中,cur_commit = true,所以我們一直也模擬不出來這個現象。
于是,我們把cur_commit也改成了 false。
 
階段7:使用測試程序去模擬
 
我們修改了測試程序,模擬上面兩個線程的操作,成功地再現了這個死鎖。錯誤的log信息和產品環境上也是一致的。
 
階段8:使用畫面操作去模擬
 
然后我們修改了程序,使用畫面去操作,也成功地再現了這個死鎖。
 
解決方案:
 
解決方案很簡單,就是把查詢語句中的條件加為索引,就不會出現死鎖了。
由于這個表數據量不大,所以性能幾乎沒有任何影響。

標簽: DB2
相關文章:
主站蜘蛛池模板: 医用空气消毒机-医用管路消毒机-工作服消毒柜-成都三康王 | 砂石生产线_石料生产线设备_制砂生产线设备价格_生产厂家-河南中誉鼎力智能装备有限公司 | 阳光模拟试验箱_高低温试验箱_高低温冲击试验箱_快速温变试验箱|东莞市赛思检测设备有限公司 | 中图网(原中国图书网):网上书店,尾货特色书店,30万种特价书低至2折! | 光环国际-新三板公司_股票代码:838504 | 政府回应:200块在义乌小巷能买到爱情吗?——揭秘打工族省钱约会的生存智慧 | 进口试验机价格-进口生物材料试验机-西安卡夫曼测控技术有限公司 | 成都顶呱呱信息技术有限公司-贷款_个人贷款_银行贷款在线申请 - 成都贷款公司 | 旗帜网络笔记-免费领取《旗帜网络笔记》电子书 | 档案密集架,移动密集架,手摇式密集架,吉林档案密集架-厂家直销★价格公道★质量保证 | 达利园物流科技集团-| 蒸压釜_蒸养釜_蒸压釜厂家-山东鑫泰鑫智能装备有限公司 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 冷水机-冰水机-冷冻机-冷风机-本森智能装备(深圳)有限公司 | 黑龙江京科脑康医院-哈尔滨精神病医院哪家好_哈尔滨精神科医院排名_黑龙江精神心理病专科医院 | 三效蒸发器_多效蒸发器价格_四效三效蒸发器厂家-青岛康景辉 | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 济南铝方通-济南铝方通价格-济南方通厂家-山东鲁方通建材有限公司 | 实验室装修_实验室设计_实验室规划设计- 上海广建净化工程公司 | 武汉高低温试验机-现货恒温恒湿试验箱-高低温湿热交变箱价格-湖北高天试验设备 | 岩棉切条机厂家_玻璃棉裁条机_水泥基保温板设备-廊坊鹏恒机械 | 实体店商新零售|微赢|波后|波后合作|微赢集团 | 网站建设-网站制作-网站设计-网站开发定制公司-网站SEO优化推广-咏熠软件 | 减速机电机一体机_带电机减速器一套_德国BOSERL电动机与减速箱生产厂家 | 手表腕表维修保养鉴定售后服务中心网点 - 名表维修保养 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | BESWICK球阀,BESWICK接头,BURKERT膜片阀,美国SEL继电器-东莞市广联自动化科技有限公司 | 海外仓系统|国际货代系统|退货换标系统|WMS仓储系统|海豚云 | 机器视觉检测系统-视觉检测系统-机器视觉系统-ccd检测系统-视觉控制器-视控一体机 -海克易邦 | 企业微信营销_企业微信服务商_私域流量运营_艾客SCRM官网 | 交变/复合盐雾试验箱-高低温冲击试验箱_安奈设备产品供应杭州/江苏南京/安徽马鞍山合肥等全国各地 | 分子精馏/精馏设备生产厂家-分子蒸馏工艺实验-新诺舜尧(天津)化工设备有限公司 | 搜木网 - 木业全产业链交易平台,免费搜货、低价买货! | 电销卡_北京电销卡_包月电话卡-豪付网络 | 纸张环压仪-纸张平滑度仪-杭州纸邦自动化技术有限公司 | 圆盘鞋底注塑机_连帮鞋底成型注塑机-温州天钢机械有限公司 | 智能楼宇-楼宇自控系统-楼宇智能化-楼宇自动化-三水智能化 | 耐火浇注料-喷涂料-浇注料生产厂家_郑州市元领耐火材料有限公司 耐力板-PC阳光板-PC板-PC耐力板 - 嘉兴赢创实业有限公司 | 深圳市源和塑胶电子有限公司-首页 | 北京自然绿环境科技发展有限公司专业生产【洗车机_加油站洗车机-全自动洗车机】 | 锂离子电池厂家-山东中信迪生电源 |