国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

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

Oracle鎖表解決方法的詳細記錄

瀏覽:109日期:2023-03-12 15:25:01
目錄
  • 前言
  • 解決方法如下:
  • 總結

前言

鎖表或鎖超時相信大家都不陌生,經常發生在DML語句中,產生的原因就是數據庫的獨占式封鎖機制,當執行DML語句時對表或行數據進行鎖住,直到事務提交或回滾或者強制結束當前會話。

對于我們的應用系統而言鎖表大概率會發生在SQL執行慢并且沒有超時的地方(一條SQL由于某種原因(Spoon工具做數據抽取與推送)一直執行不成功并且一直不釋放資源)因此寫出高效率SQL也尤為重要!還有另外情況也會發生鎖表,就是高并發場景,高并發會帶來的問題就是Spring事務會造成數據庫事務未提交產生死鎖(當前事務等待其他事務釋放鎖資源)!從而拋出異常java.sql.SQLException: Lock wait timeout exceeded;。

那么如何解決鎖表或鎖超時呢?臨時性解決方案就是找出鎖資源競爭的表或語句,直接結束當前會話或sesstion,強制釋放鎖資源。例如

解決方法如下:

1、session1修改某條數據但是不提交事務,session2查詢未提交事務的那條記錄

2、session2嘗試修改

我們可以看到修改未提交事務的記錄會處于一直等待狀態,直到對方釋放鎖資源或強制關閉session1。這里也說明了Oracle做到了行級鎖!

這里只是簡單的模擬了出現鎖表情況,可以一眼看出就是session1導致的鎖表。實際開發中遇到這種情況一般都是使用SQL直接查出鎖資源競爭的表或語句然后進行資源的強制釋放!!

3、session3查詢競爭資源的表或語句,強制釋放資源

-- 查詢未提交事務的session信息,注意執行以下SQL,用戶需要有DBA權限才行SELECT    L.SESSION_ID,    S.SERIAL#,    L.LOCKED_MODE AS 鎖模式,    L.ORACLE_USERNAME AS 所有者,    L.OS_USER_NAME AS 登錄系統用戶名,    S.MACHINE AS 系統名,    S.TERMINAL AS 終端用戶名,    O.OBJECT_NAME AS 被鎖表對象名,    S.LOGON_TIME AS 登錄數據庫時間FROM V$LOCKED_OBJECT L    INNER JOIN ALL_OBJECTS O ON O.OBJECT_ID = L.OBJECT_ID    INNER JOIN V$SESSION S ON S.SID = L.SESSION_IDWHERE 1 = 1

查詢結果如下

對我們強制釋放資源有用的只有前面兩個字段,例如

-- 強制 結束/kill 鎖表會話語法ALTER SYSTEM KILL SESSION "SESSION_ID, SERIAL#";-- 強制殺死session1,讓session2可以修改id=5的那條記錄ALTER SYSTEM KILL SESSION "34, 111";

強制殺死session1后,注意觀察session2的執行情況!我們會發現session2的等待會立即終止并執行!相信小伙伴們都有一個疑惑,session_id有29和34,如何確定他們屬于session1還是session2,保證殺死的是session1讓session2成功執行DML語句?

其實也很簡單,這里的判斷方式就是session1執行更新但不提交事務,可先用以上SQL查詢未提交事務的session信息,此時查到的就是session1的信息。

總結

到此這篇關于Oracle鎖表解決的文章就介紹到這了,更多相關Oracle鎖表解決內容請搜索以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持!

標簽: Oracle
主站蜘蛛池模板: 91porny九色国产首页在线 | 欧美在线视频不卡 | 久久综合狠狠综合久久97色 | 久久一本综合 | 欧美成人毛片免费网站 | 精品成人免费一区二区在线播放 | 色婷婷久久综合中文久久蜜桃 | 欧美日韩视频在线 | 97青草香蕉依人在线播放 | 成人入口 | 亚洲精品久久99久久 | 在线观看免费av网 | 99国产欧美久久精品 | 欧美一区二区三区高清视频 | 久久精品视频在线观看 | 久久国产欧美日韩精品 | 中文字幕乱 | 国产精品免费久久久免费 | 亚洲天堂视频网 | 国产一区二区三区毛片 | 欧美激情一级欧美精品 | 日韩天天摸天天澡天天爽视频 | 美女黄视频在线 | 亚洲欧美日韩在线线精品 | 久草在线视频在线观看 | 午夜三级a三级三点在线观看 | 国产精品偷伦费观看 | 日韩精品永久免费播放平台 | 精品欧美一区二区三区四区 | 亚洲国产精品久久精品成人 | 99热久久国产精品这 | 噜噜噜狠狠夜夜躁精品 | 男人在线天堂 | 成人久久久久 | 欧美精品亚洲人成在线观看 | 成人黄色一级片 | 91精品久久久久久久久久 | 国产精品成人一区二区三区 | 一区高清 | 日韩一级大片 | 国产免费亚洲 |