日本免费精品_最新日韩一区_亚洲视频一区在线_a在线视频观看_天天射夜夜骑_粉嫩av一区二区三区_欧美中日韩免费视频_综合图区欧美_国内精品美女在线观看_午夜精品久久久久久久男人的天堂

首頁 > 數據庫 > MySQL > 正文

MySQL DeadLock故障排查全過程記錄

2024-07-25 19:09:28
字體:
來源:轉載
供稿:網友

【作者】

劉博:攜程技術保障中心數據庫高級經理,主要關注Sql server和Mysql的運維和故障處理。

【環境】

版本號:5.6.21

隔離級別:REPEATABLE READ

【問題描述】

接到監控報警,有一個線上的應用DeadLock報錯,每15分鐘會準時出現,報錯統計如下圖:

MySQL,DeadLock,故障排查

登錄Mysql服務器查看日志:

mysql> show engine innodb status/G*** (1) TRANSACTION:TRANSACTION 102973, ACTIVE 11 sec starting index readmysql tables in use 3, locked 3LOCK WAIT 4 lock struct(s), heap size 1136, 3 row lock(s)MySQL thread id 6, OS thread handle 140024996574976, query id 83 localhost us updatingUPDATE TestTableSET column1 = 1,Column2 = sysdate(),Column3= '026'Column4 = 0AND column5 = 485AND column6 = 'SEK'*** (1) WAITING FOR THIS LOCK TO BE GRANTED:RECORD LOCKS space id 417 page no 1493 n bits 1000 index idx_column6 of table test.TestTable trx id 102973 lock_mode X waitingRecord lock, heap no 859 PHYSICAL RECORD: n_fields 2; compact format; info bits 00: len 3; hex 53454b; asc SEK;;1: len 8; hex 80000000007e1452; asc ~ R;;*** (2) TRANSACTION:TRANSACTION 102972, ACTIVE 26 sec starting index readmysql tables in use 3, locked 3219 lock struct(s), heap size 24784, 2906 row lock(s), undo log entries 7MySQL thread id 5, OS thread handle 140024996841216, query id 84 localhost us updatingUPDATE TestTableSET Column1 = 1,Column2 = sysdate(),Column3 = '026'Column4 = 0AND Column5 = 485AND Column6 = 'SEK'*** (2) HOLDS THE LOCK(S):RECORD LOCKS space id 417 page no 1493 n bits 1000 index idx_Column6 of table test.TestTable trx id 102972 lock_mode XRecord lock, heap no 1 PHYSICAL RECORD: n_fields 1; compact format; info bits 00: len 8; hex 73757072656d756d; asc supremum;;Record lock, heap no 859 PHYSICAL RECORD: n_fields 2; compact format; info bits 00: len 3; hex 53454b; asc SEK;;1: len 8; hex 80000000007e1452; asc ~ R;;
*** (2) WAITING FOR THIS LOCK TO BE GRANTED:RECORD LOCKS space id 601 page no 89642 n bits 1000 index idx_column6 of table test.TestTable trx id 32231892482 lock_mode X locks rec but not gap waitingRecord lock, heap no 38 PHYSICAL RECORD: n_fields 2; compact format; info bits 00: len 3; hex 53454b; asc SEK;;1: len 8; hex 80000000007eea14; asc ~ ;;

大致一看,更新同一索引的同一行,應該是一個Block,報TimeOut的錯才對,怎么會報DeadLock?

【初步分析】

先分析下(2) TRANSACTION,TRANSACTION 32231892482。

等待的鎖信息為:

0: len 3; hex 53454b; asc SEK;;1: len 8; hex 80000000007eea14; asc

持有的鎖信息為:

0: len 3; hex 53454b; asc SEK;;1: len 8; hex 80000000007eeac4; asc

再先分析下(1) TRANSACTION,TRANSACTION 32231892617。

等待的鎖信息為:

0: len 3; hex 53454b; asc SEK;;1: len 8; hex 80000000007eeac4; asc

于是可以畫出的死鎖表,兩個資源相互依賴,造成死鎖:

 

TRANSACTION Hold Wait
32231892617 53454b/80000000007eea14 53454b/80000000007eeac4
32231892482 53454b/80000000007eeac4 53454b/80000000007eea14

 

讓我們再看一下explain結果:

mysql>desc UPDATE TestTable SET Column1=1, Column2 = sysdate(),Column3 = '025' Column4 = 0 AND Column5 = 477 AND Column6 = 'SEK' /G;

*************************** 1. row ***************************

id: 1

select_type: UPDATE

table: TestTable

partitions: NULL

type: index_merge

possible_keys: column5_index,idx_column5_column6_Column1,idxColumn6

key: column5_index,idxColumn6

key_len: 8,9

ref: NULL

rows: 7

filtered: 100.00

Extra: Using intersect(column5_index,idxColumn6); Using where

可以看到 EXTRA 列:

Using intersect(column5_index,idxColumn6)

從5.1開始,引入了 index merge 優化技術,對同一個表可以使用多個索引分別進行條件掃描。

相關文檔:http://dev.mysql.com/doc/refman/5.7/en/index-merge-optimization.html

The Index Merge method is used to retrieve rows with several range scans and to merge their results into one. The merge can produce unions, intersections, or unions-of-intersections of its underlying scans. This access method merges index scans from a single table; it does not merge scans across multiple tables.

【模擬與驗證】

根據以上初步分析,猜測應該就是intersect造成的,于是在測試環境模擬驗證,開啟2個session模擬死鎖:

 

時間序列 Session1 Session2
1 Begin;  
2 UPDATE TestTable SET Column2 = sysdate() Column4 = 0 AND Column5 = 47 AND Column6 = 'SEK 
執行成功,影響7行
 
3   Begin;
4   UPDATE TestTable SET Column2 = sysdate(),Column4 = 0 AND Column5 = 485 AND Column6 = 'SEK';
被Blocking
5 UPDATE TestTable SET Column2 = sysdate(),Column4 = 0 AND Column5 = 485 AND Column6 = 'SEK';
執行成功
ERROR 1213 (40001): Deadlock found when trying to get lock; try restarting transaction

 

依據以上信息可以發現Session2雖然被Block了,但也獲取了一些Session1在時間序列5時所需資源的X鎖,可以再開啟一個查詢select count(Column5) from TestTable where Column5 = 485,設置SET TRANSACTION ISOLATION LEVEL SERIALIZABLE,去查詢Column5 = 485的行,觀察鎖等待的信息:
mysql> SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id

mysql> SELECT r.trx_id waiting_trx_id, r.trx_mysql_thread_id waiting_thread, r.trx_query waiting_query, b.trx_id blocking_trx_id, b.trx_mysql_thread_id blocking_thread, b.trx_query blocking_query FROM information_schema.innodb_lock_waits w INNER JOIN information_schema.innodb_trx b ON b.trx_id = w.blocking_trx_id INNER JOIN information_schema.innodb_trx r ON r.trx_id = w.requesting_trx_id /G;*************************** 1. row ***************************waiting_trx_id: 103006waiting_thread: 36waiting_query: UPDATE TestTable SET Column1 = 1, Column2 = sysdate(), Column3 = '026' Column4 = 0 AND Column5 = 485 AND Column6 = 'SEK'blocking_trx_id: 103003blocking_thread: 37blocking_query: NULL*************************** 2. row ***************************waiting_trx_id: 421500433538672waiting_thread: 39waiting_query: select count(Column5) from TestTable where Column5 = 485blocking_trx_id: 103006blocking_thread: 36blocking_query: UPDATE TestTable SET Column1 = 1, Column2 = sysdate(), Column3 = '026' Column4 = 0 AND Column5 = 485 AND Column6 = 'SEK'2 rows in set, 1 warning (0.00 sec)mysql> select * from information_schema.innodb_lock_waits /G;*************************** 1. row ***************************requesting_trx_id: 103006requested_lock_id: 103006:417:1493:859blocking_trx_id: 103003blocking_lock_id: 103003:417:1493:859*************************** 2. row ***************************requesting_trx_id: 421500433538672requested_lock_id: 421500433538672:417:749:2blocking_trx_id: 103006blocking_lock_id: 103006:417:749:22 rows in set, 1 warning (0.00 sec)
mysql> select * from INNODB_LOCKS /G;*************************** 1. row ***************************lock_id: 103006:417:1493:859lock_trx_id: 103006lock_mode: Xlock_type: RECORDlock_table: test.TestTablelock_index: idxColumn6lock_space: 417lock_page: 1493lock_rec: 859lock_data: 'SEK', 8262738*************************** 2. row ***************************lock_id: 103003:417:1493:859lock_trx_id: 103003lock_mode: Xlock_type: RECORDlock_table:test.TestTablelock_index: idxColumn6lock_space: 417lock_page: 1493lock_rec: 859lock_data: 'SEK', 8262738*************************** 3. row ***************************lock_id: 421500433538672:417:749:2lock_trx_id: 421500433538672lock_mode: Slock_type: RECORDlock_table: test.TestTablelock_index: column5_indexlock_space: 417lock_page: 749lock_rec: 2lock_data: 485, 8317620*************************** 4. row ***************************lock_id: 103006:417:749:2lock_trx_id: 103006lock_mode: Xlock_type: RECORDlock_table: test.TestTablelock_index: column5_indexlock_space: 417lock_page: 749lock_rec: 2lock_data: 485, 83176204 rows in set, 1 warning (0.00 sec)

可以看到Session2,trx_id 103006阻塞了trx_id 421500433538672,而trx_id 421500433538672 requested_lock也正好是lock_data: 485, 8317620。由此可見Session2雖然別block了,但是還是獲取到了Index column5_index相關的鎖。被Block是因為intersect的原因,還需要idxColumn6的鎖,至此思路已經清晰,對整個分配鎖的信息簡化一下,如下表格(請求到的鎖用青色表示,需獲取但未獲取到的鎖用紅色表示):

 

時間點 Session1 Session2
1 477 SEK  
2   485 SEK
3 485 SEK 死鎖發生

 

可以看到485 SEK這兩個資源形成了一個環狀,最終發生死鎖。

【解決方法】

  • 最佳的方法是添加column5和Column6的聯合索引。
  • 我們環境當時的情況發現Column6的篩選度非常低,就刪除了Column6的索引。
    10:55左右刪除索引后,報錯沒有再發生:

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,如果有疑問大家可以留言交流,謝謝大家對VeVb武林網的支持。


注:相關教程知識閱讀請移步到MYSQL教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
日韩欧美国产成人一区二区| 精品日韩99亚洲| 国产一区免费视频| 欧美日韩国产系列| 中文精品视频| 欧美日韩中文字幕视频| 不卡一二三区| 黄色在线资源| 日韩三级视频在线看| 丰满少妇一区| 日韩精品高清不卡| 国产在线二区| 日韩精品乱码av一区二区| 欧美一级在线免费| 99热最新网址| 97视频在线| 欧美专区中文字幕| 欧美日韩中文字幕| 欧美日韩视频免费看| 91精品网站| 中文字幕成人乱码在线电影| 欧美三级三级三级爽爽爽| 精品在线一区二区| 欧美在线日韩精品| 国产色在线 com| 欧美日韩国产首页在线观看| 日本亚洲欧美天堂免费| 亚洲人成欧美中文字幕| 国产字幕中文| 亚洲狠狠婷婷综合久久久久图片| 日韩三级精品| 日本精品在线中文字幕| 韩国一区二区av| 国产婷婷一区二区| 日韩国产在线不卡视频| 一区二区视频在线观看免费的| 国产高清在线一区| 国产在线二区| 日本а中文在线天堂| 91欧美日韩在线| 久久综合久久综合九色| 91亚洲国产| 91精品国产经典在线观看| 免费高清特黄a大片| 日韩精品―中文字幕| 精品国产欧美| 欧美日韩一二| 日韩欧美一二三四区| 日韩不卡中文字幕| 日韩精品视频免费在线观看| 婷婷久久综合九色国产成人| 日韩三级高清在线| 91精品国产调教在线观看| 日韩亚洲欧美中文在线| 精品九九久久| 免费在线视频一区二区| 亚洲欧洲日产国码av系列天堂| 精品国产欧美日韩| 亚洲一区二区三区精品中文字幕| 热久久精品国产| 日韩欧美在线看| 日韩中文字幕视频在线观看| 欧美国产小视频| 日韩三级视频在线| 樱花草www在线| a在线观看免费视频| 亚洲三级av| 欧美国产综合在线V| 国产欧美久久久精品免费| 91麻豆精品国产91久久久使用方法 | 国产欧美日韩精品高清二区综合区| 亚洲一级网站| 国产欧美综合在线| 日韩高清在线一区二区| 中文字幕在线观看视频www| 日韩中文欧美在线| 日韩在线观看一区| 日韩欧美亚洲国产| 欧美日韩一级黄| 天堂精品高清1区2区3区| 精品全国在线一区二区| 视频一区中文字幕国产| 欧美大片在线观看一区| 九九在线精品| 国产欧美日韩第一页| 日韩美女中文字幕| 欧美日韩午夜在线视频| 日韩精品在线观看视频| 国产最新在线| 日韩精品视频免费| 精品国产1区2区3区| 日韩中文字幕在线视频观看| 国产乱国产乱300精品| 国产视频一区三区| 欧美日韩综合视频| 一区二区三区在线|网站| 91麻豆精品国产91久久久使用方法| 国产欧美久久久| 中文字幕五月天| 色综合天天综合网国产成人综合天| 日韩欧美亚洲区| 欧美日韩国产区| 国产偷国产偷亚洲清高网站 | 欧美日韩高清在线播放| 欧美在线日韩精品| 一级片免费网站| 久久精品人妻一区二区三区| 欧美91精品| 香蕉视频亚洲一级| 亚洲欧美99| 中文字幕在线观看国产| 日韩亚洲欧美中文三级| 欧美日韩国产一区在线| 欧美另类专区| 国产在线不卡一区| 三级精品视频| 日韩视频精品在线观看| 国产欧美日韩精品在线| 欧美中文字幕在线观看视频| 久久精品国产成人一区二区三区| 日韩欧美高清在线视频| 国产xxx在线| 日韩三级精品| 日本不卡高清视频一区| 日韩精品不卡一区二区| 欧美一级免费在线观看| 日韩精品福利一区二区三区| 欧美另类专区| 国产欧美日韩在线| 中文字幕一区免费| 国产在线不卡av| 亚洲第一中文字幕| 国产欧美自拍一区| 国产黄色一级片| 日韩你懂的电影在线观看| 精品播放一区二区| 免费高清特黄a大片| 婷婷中文字幕一区三区| 中文字幕欧美日韩在线| 精品精品久久| 91精品国产91久久久久青草| 人人做人人澡人人爽欧美| 精品三区视频| 欧美日韩国产观看视频| 中文字幕在线视频网| 国产拍揄自揄精品视频麻豆| 精品国内自产拍在线视频| 久久精品夜夜夜夜久久| 91精品国产欧美日韩| √天堂资源中文www| 91精品国产91综合久久蜜臀| 91精品国产入口| 午夜国产福利一区二区| 国产小视频在线观看| 中文字幕精品在线视频| 日韩欧美久久| 中文字幕乱码在线| 日韩视频一区| 中文字幕第一页在线播放| 999精品在线| 久99久视频| 日韩视频精品| 在线日韩中文| 91精品国产91久久| 欧美久久久精品| 欧美日韩在线视频免费观看| 中文字幕日韩高清| 国产在线第一页| 欧美黄页在线免费观看| 亚洲最新免费视频| 亚洲小说春色综合另类网蜜桃| 亚洲欧美小说国产图片| 亚洲视频在线观看三级| 一二三区精品福利视频| 国产一区在线精品| 一区二区三区高清在线| 国产三级在线| 中文字幕亚洲第一| 欧美日韩激情在线一区二区三区| 日韩欧美中文字幕精品| 久久久精品国产免费观看同学| 免费视频国产一区| 在线视频不卡一区二区| 日韩精品第一区| 国产在线黄色片| 日韩国产欧美三级| 欧美中文字幕视频在线观看| 国产日韩免费| 亚洲综合日韩| 国产精品一区二区三区免费观看| 国产91大片| 中文字幕中文字幕精品| 偷窥国产亚洲免费视频| 欧美亚洲国产日韩2020| 国产区高清在线| a√免费观看在线网址www| 中文字幕一区免费| 婷婷中文字幕一区| 中文在线第一页| 91精品久久久久久蜜臀| 视频一区中文字幕国产| 欧美激情一区二区在线| 日韩精品在线免费观看| 婷婷精品进入| 久久精品一二三| 99久久精品国产成人一区二区| 日韩精品不卡一区二区| 国产日韩在线视频| 国产一区不卡精品| 欧美xxxx中国| 亚洲娇小xxxx欧美娇小| 国产日韩在线视频| 亚洲免费精品视频| 色国产在线视频| 日韩欧美在线综合网| 亚洲 欧美 精品| 久久精品久久久久| 国产 日韩 欧美 综合 一区| 欧美日韩在线播放三区四区| 婷婷中文字幕综合| 中文字幕在线亚洲| 日韩视频精品在线| 最新中文字幕在线| 亚洲.国产.中文慕字在线| 日韩欧美国产免费播放| 在线国产99| 日本精品在线播放| 91精品免费观看| 精品久久91| 国产黄在线看| 亚洲国产91精品在线观看| 国产资源在线观看| 欧美日韩亚洲第一| 中文字幕精品视频在线| 99国产成 人 综合 亚洲欧美| 国产欧美日韩第一页| 在线视频不卡一区二区| 亚洲成年人影院在线| 亚洲一级特黄| 欧美日韩中文字幕在线观看| 在线综合 亚洲 欧美中文字幕| 欧美午夜精品在线| 国产久卡久卡久卡久卡视频精品| 欧美三级网址| 日韩三级视频在线看| 日韩区欧美区| 中文字幕欧美日韩在线不卡| 欧美国产日韩在线播放| 午夜精品一区二区三区视频免费看| 快she精品国产999| 92久久精品| 国产精品一区二三区| 亚洲乱码中文字幕综合| 精品色蜜蜜精品视频在线观看| 日韩视频在线一区二区三区| 91精品综合久久| 午夜少妇久久久久久久久| lutube成人福利在线观看| 国产成人精品免费网站| 最近高清中文在线字幕在线观看| 日韩精品久久久| 亚洲福利视频在线| 欧美日韩精品综合在线| 国产黄色在线| 国产免费一级片| 亚洲免费在线观看av| 亚洲天堂国产视频| 亚洲二区自拍| 欧美成人一区二区| 天天摸日日摸狠狠添| 国产中文在线观看| 欧美一级免费看| 国产欧美中文字幕| 亚洲一区在线观看网站| 欧美日韩亚洲系列| 亚洲视频一二三四| 国产欧美三级| 综合激情一区| 一区二区视频在线| 日本不卡高清视频一区| 中文在线不卡视频| 69av亚洲| 91 中文字幕| 一级国产黄色片| 国产男女av| 欧美日韩在线播放视频| 国产黄色在线观看| 国产福利一区二区在线精品| 日韩一级二级三级精品视频| 欧美久久在线观看| 在线精品日韩| www中文字幕在线观看| 国产三级中文字幕| 中文天堂在线一区| 99综合精品久久| 欧美自拍一区| 国产对白在线| 欧美日韩在线播放视频| 日韩国产成人| 欧美日韩亚洲一| 国产永久免费高清在线观看| av首页在线| 日韩在线二区| 日韩av一区二| 日韩免费视频| 欧美日韩国产页| 欧美日韩国产综合网| 国产美女主播视频一区| 国产在线观看a| 国产中文在线观看| 韩日中文字幕第一页| 亚洲成在线观看| 精品久久久91| 精品亚洲国内自在自线福利| 久久精品日韩无码| 日韩一级免费在线观看| 中文字幕最新精品| 欧美日韩综合视频| 免费精品国产自产拍观看| 久久麻豆视频| 国产欧美综合视频| 中文字幕精品在线视频| 亚洲欧洲在线观看av| 日韩在线高清视频| 中文字幕在线日韩| 日韩欧美成人一区二区三区| 日韩三级高清在线| 国产一二三区精品视频| 精品一性一色一乱农村| 日韩久久在线| 热久久精品国产| 中文字幕在线视频精品| 91精品国产自产在线| 麻豆精品视频入口| 在线看的av| 国产一级粉嫩xxxx| 中文字幕精品一区二区三区在线| 国产一二三区精品视频| 91精品国产网站| 久久精品视频免费看| 精品一二线国产| 先锋男人资源站| 日韩欧美在线视频日韩欧美在线视频| 精品国产91| 欧美日韩免费不卡视频一区二区三区| 久久婷婷中文字幕| 日韩视频在线一区| 精品在线99| 在线观看一区日韩| 中文字幕日韩亚洲| 中文字幕精品视频| 国产 中文 字幕 日韩 在线| 日韩欧美国产不卡| 欧美日韩国产首页在线观看| 国产婷婷在线观看| 99精品一级欧美片免费播放| 亚洲大胆人体av| 国产视频2区| 偷窥国产亚洲免费视频| 欧美三级免费观看| 一区二区精品| 日韩精品在线网站| 国产高清在线一区| 久久人人精品| 综合图区亚洲白拍在线| 日韩不卡高清视频| 色综合婷婷久久| 欧美日韩中文字幕在线| 中文字幕日韩欧美在线| 91精品国产91久久久久青草| 精品不卡一区二区| 中文字幕线观看| 精品国自产在线观看| 欧美日韩中文字幕日韩欧美| 亚洲国产91精品在线观看| 久久综合九色欧美综合狠狠| 极品久久久久久| 中文字幕欧美亚洲| 欧美日韩国产大片| 中文字幕2020第一页| 日韩精品视频免费| 亚洲乱码中文字幕综合| 国产精品视频福利一区二区| 中文 欧美 日韩| 久久久99久久| 日韩欧美中文| 欧美日韩高清不卡| 欧美日韩国产成人| 欧美日韩国产综合久久| 日韩欧美中文字幕在线播放| 91精品国产91久久| 久久人人精品| 欧美日韩在线国产| 91精品在线观| 日韩免费高清一区二区| a√免费观看在线网址www| 精品视频资源站| 精品区一区二区| 国产视频97| 日本不卡免费高清视频|