日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

oracle locked time,ORACLE distributed_lock_timeout参数

發布時間:2023/12/15 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle locked time,ORACLE distributed_lock_timeout参数 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

今天上午碰到一個報錯:

ORA-02049:timeout:distributed transaction waiting for lock

但是并未對業務造成實際影響,過了一段時間后好了。因為那段時間,用戶連續做了100筆的核銷業務。

【經查】

ORA-02049錯誤說明如下:

ORA-02049:timeout:distributed transaction waiting for lock

cause:exceeded INIT.ORA distributed_lock_timeout seconds waiting for lock.

action:treat as a deadlock.

【解決】

1、先查是否又死鎖出現:

SELECT l.session_id sid, s.serial#, l.locked_mode,l.oracle_username,

l.os_user_name,s.machine, s.terminal, o.object_name, s.logon_time

FROM v$locked_object l, all_objects o, v$session s

WHERE l.object_id = o.object_id

AND l.session_id = s.sid

ORDER BY sid, s.serial#;

有的話可以根據業務實際情況考慮殺掉,恢復正常業務

alter system kill session 'sid,serial#';

2、再查一個參數distributed_lock_timeout,可以考慮是否需要調優

最好不要去調這個參數,除非業務被影響到,并且通過應用程序無法避免這個問題

2.17 ORACLE distributed_lock_timeout

2.17.1 參數出處ORACLE初始參數文件:init.ora -> distributed_lock_timeout。

2.17.2 時間單位

秒。

2.17.3 取值范圍

大于0。

2.17.4 默認取值

60 。

2.17.5 用途解釋

分布式事務鎖等待超時(distributed transaction waiting for lock),指第二個事務處理需要的數據庫資源,正被第一個分布式事務占用而鎖定,那么,第二個事務將等待第一個分布式事務釋放此資源,等待distributed_lock_timeout時間后,如果第一分布式事務仍然沒有釋放此資源,第二個事務觸發此超時。

2.17.6 超時后果

如果資源被第一個事務正常使用鎖定,ORACLE回滾第二個事務,并返回錯誤:"ORA-02049: time-out: distributed transaction waiting for lock "。

如果第一個事務處理完成,資源釋放后,再嘗試第二個事務,就會成功。如果第二個事務不能等待資源自動釋放,那么可以采用處理數據庫死鎖(deadlock)的措施,人工介入,清除第一個事務,但一般不建議采用這種方式,因為第一個事務一般會正常結束的。

如果資源被第一個事務因為處于不確定分布事務狀態(in-doubt distributed transaction)而鎖定,ORACLE回滾第二個事務,并返回錯誤:"ORA-01591: lock held by in-doubt distributed transaction identifier "。

這種錯誤遇到的可能性較小,一般只有在分布事務的關鍵提交階段出現網絡、系統故障,才可能出現此故障,而且,當網絡、系統故障恢復后,ORACLE一般可以自己解決此問題,不需要人工介入。如果一定要人工介入,可以查閱ORACLE專門的手冊。

2.17.7 設置考慮

出現這樣的超時,是因為特定數據庫資源的使用碰撞,要分析應用系統的業務特點,確定碰撞可能發生的條件,在此條件下,資源可能被先來者鎖定多長時間(T1),后來者又能夠等多長時間(T2),再來設置此參數(T)的大小。如果在大多數情況下,T1 < T2, 那么就設置T1 < T < T2;反之,大多數情況下,T1 > T2,那么,就設置T < T2。

因此,不分析業務特點,一味的增大和減小是不恰當的。

【這篇文章前面的部分也可以看一下的】

總結

以上是生活随笔為你收集整理的oracle locked time,ORACLE distributed_lock_timeout参数的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。