您好,登錄后才能下訂單哦!
前言:在管理ORACLE的工作中,經常發現因為鎖等待的原因導致應用宕機了。Mysql考慮到自身的性能和架構等因素,InnoDB數據庫引擎增加了參數innodb_lock_wait_timeout,避免在資源有限的情況下產生太多的鎖等待;
一、innodb_lock_wait_timeout的參數說明
innodb_lock_wait_timeout指的是事務等待獲取資源等待的最長時間,超過這個時間還未分配到資源則會返回應用失敗;
參數的時間單位是秒,最小可設置為1s(一般不會設置得這么小),最大可設置1073741824秒(34年,一條語句鎖等待超過30分鐘估計業務該有反饋了)
默認安裝時這個值是50s(公司的默認參數設置)
二、參數的修改
參數支持范圍為Session和Global,且支持動態修改,所以可以通過兩種方法修改;
2.1 通過語句修改
set innodb_lock_wait_timeout=100;
set global innodb_lock_wait_timeout=100;
注意global的修改對當前線程是不生效的,只有建立新的連接才生效
2.2 修改參數文件/etc/my.cnf
innodb_lock_wait_timeout = 50
三、當等待超過閥值時的情況
當鎖等待超過設置時間的時候,就會報如下的錯誤;
ERROR 1205 (HY000): Lock wait timeout exceeded; try restarting transaction
總結:本文檔只是對MySQL鎖等待的相關參數做一個簡單的了解,后續會有整理相關鎖等待及管理的文檔;
......................................................................................................................................................................………………………………………
本文作者:JOHN,某上市公司DBA,業余時間專注于數據庫的技術管理,從管理的角度去運用技術。
ORACLE技術博客:ORACLE 獵人筆記 數據庫技術群:367875324 (請備注ORACLE管理 )
......................................................................................................................................................................………………………………………
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。