資料庫死鎖解決辦法

2022-03-06 19:19:20 字數 1199 閱讀 9844

1.之前遇到過乙個場景:有乙個使用者登入一直失敗,但是其他使用者卻可以正常登入,後來測試藉口發現在登入時更新這個使用者的登入時間時,一直沒有反應然後超時了。因為innordb是行級鎖的所以就想到了是這條使用者的資訊被鎖住了。

2.解決方案:

執行語句:select * from information_schema.innodb_trx\g ;

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

trx_id: 189324

trx_state: running

trx_started: 2013-04-18 17:48:14

trx_requested_lock_id: null

trx_wait_started: null

trx_weight: 3

trx_mysql_thread_id: 16

trx_query: null

trx_operation_state: null

trx_tables_in_use: 0

trx_tables_locked: 0

trx_lock_structs: 2

trx_lock_memory_bytes: 376

trx_rows_locked: 3

trx_rows_modified: 1

trx_concurrency_tickets: 0

trx_isolation_level: repeatable read

trx_unique_checks: 1

trx_foreign_key_checks: 1

trx_last_foreign_key_error: null

trx_adaptive_hash_latched: 0

trx_adaptive_hash_timeout: 10000

trx_is_read_only: 0

trx_autocommit_non_locking: 0

這個語句是查詢innordb的事務資訊的資料,一般trx_started這個時間到現在時間很長的話,說明這個事務已經鎖死了,trx_rows_locked代表的是有多少行被鎖定了。trx_tables_locked表示多少表被鎖定了。所以可以根據這個資訊去找到trx_mysql_thread_id的值然後使用kill 執行緒id 殺掉對應的執行緒就可以解開鎖定了

資料庫死鎖檢視及解決辦法

問題 訪問不了,主機重啟之後,執行正常。解決對策 由於資料庫死鎖造成。死鎖原因 提取查詢資料相應資料,修改stat表,都是修改同一條資料,進行大資料量的操作,多使用者同時操作時,造成資料庫死鎖和阻塞 知識拓展 1 sql死鎖和阻塞。2 死鎖測試方法 程式中將資料庫操作,迴圈操作1萬次,開啟多個視窗同...

Oracle資料庫死鎖的解決辦法

本文我們嘗試總結在多個使用者併發情況下,如何識別和解決刪除操作期間發生的死鎖問題,在開始之前,我們先簡單描述一下什麼是死鎖以及什麼東西會導致死鎖。死鎖 在任何資料庫中發生死鎖都是不愉快的,即使是在乙個特殊的情況下發生也是如此,它們會減小應用程式的接受程度 acceptance 因此避免並正確解釋死鎖...

mysql 資料庫死鎖原因及解決辦法

死鎖 deadlock 所謂死鎖 是指兩個或兩個以上的程序在執行過程中www.cppcns.com,因爭奪資源而造成的一種互相等待的現象,若無外力作用,它們都將無法推進下去。此時稱系統處於死鎖狀態或系統產生了死鎖,這些永遠在互相等待的程序稱為死鎖程序。由於資源占用是互斥的,當某個程序提出申請資源後,...