主頁 > 知識庫 > Mysql 出現(xiàn)故障應(yīng)用直接中斷連接導(dǎo)致數(shù)據(jù)被鎖(生產(chǎn)故障)詳解

Mysql 出現(xiàn)故障應(yīng)用直接中斷連接導(dǎo)致數(shù)據(jù)被鎖(生產(chǎn)故障)詳解

熱門標(biāo)簽:地方門戶網(wǎng)站 呼叫中心市場需求 Linux服務(wù)器 網(wǎng)站排名優(yōu)化 鐵路電話系統(tǒng) 百度競價排名 服務(wù)外包 AI電銷

應(yīng)用直接中斷連接導(dǎo)致數(shù)據(jù)被鎖(生產(chǎn)故障)

  1.  這是一個由應(yīng)用重啟連接直接而導(dǎo)致數(shù)據(jù)被鎖的問題。
  2.  系統(tǒng)大致結(jié)構(gòu)


基本情況:

  • 整個架構(gòu)為了統(tǒng)一管理db連接,共享連接。
  • 應(yīng)用通過loadbalance連接db訪問層。
  • db訪問層后端代理若干db。
  • 應(yīng)用到loadbalance以mysql協(xié)議通信。
  • db訪問層到db以JDBC方式通信。

故障: 某些數(shù)據(jù)庫中的表數(shù)據(jù)相當(dāng)長一段時間被鎖,導(dǎo)致應(yīng)用某些場景失敗。

故障分析:應(yīng)用開啟一個事務(wù)的set autocommit=0命令是從app-lb-db訪問層-db,期間如果某個事務(wù)還未執(zhí)行完,而app強行中斷連接,就會導(dǎo)致app-lb的連接斷開,而lb并不直接斷開后端的連接,即lb-db訪問層-db的連接不會斷,從而導(dǎo)致db不會發(fā)生回滾操作。而且此事務(wù)對某些記錄加了鎖,于是就會發(fā)生某些數(shù)據(jù)被鎖。直到db訪問層檢測出該連接超過了idle時間才會關(guān)閉,并發(fā)送回滾命令給db。

解決問題:

① lb在前端連接關(guān)閉時要同時關(guān)閉同會話的后端連接,并且db訪問層要監(jiān)聽lb的連接,一旦關(guān)閉則要做回滾操作。

②去掉lb,提供客戶端loadbalance,應(yīng)用一旦關(guān)閉連接db訪問層也要關(guān)閉連接。

 感謝閱讀,希望能幫助到大家,謝謝大家對本站的支持!

您可能感興趣的文章:
  • MYSQL主從庫不同步故障一例解決方法
  • 線上MYSQL同步報錯故障處理方法總結(jié)(必看篇)
  • MySQL下高可用故障轉(zhuǎn)移方案MHA的超級部署教程
  • 一次MySQL慢查詢導(dǎo)致的故障
  • MySQL復(fù)制的概述、安裝、故障、技巧、工具(火丁分享)
  • 檢測MySQL的表的故障的方法
  • mysql 無法聯(lián)接常見故障及原因分析
  • MySQL故障切換筆記之應(yīng)用無感知設(shè)計詳解

標(biāo)簽:崇左 湘潭 蘭州 仙桃 黃山 衡水 銅川 湖南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Mysql 出現(xiàn)故障應(yīng)用直接中斷連接導(dǎo)致數(shù)據(jù)被鎖(生產(chǎn)故障)詳解》,本文關(guān)鍵詞  ;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 收縮
    • 微信客服
    • 微信二維碼
    • 電話咨詢

    • 400-1100-266