中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Oracle各類連接超時相關參數怎么使用

發布時間:2023-04-12 16:31:33 來源:億速云 閱讀:99 作者:iii 欄目:開發技術

今天小編給大家分享一下Oracle各類連接超時相關參數怎么使用的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、 EXPIRE_TIME

1. 使用說明

EXPIRE_TIME 用于死連接檢測。設定該參數為非零值,12c前會定期給空閑連接發送探測包檢查客戶端是否已異常斷開(12c開始則利用操作系統keepalive參數進行檢測)。

一旦發現異常連接,最多會重傳操作系統參數tcp_retries2指定次數。

如果超過最大重試次數仍重傳失敗,將返回錯誤并通知oracle pmon進程清除對應的server process。

值得注意的是,根據文檔 Doc ID 395505.1,如果在1個SQLNET.EXPIRE_TIME之內客戶端有數據包發送,在SQLNET.EXPIRE_TIME時間到來時,oracle不會再發送探測數據包給客戶端,這樣有可能出現最大2*SQLNET.EXPIRE_TIME時間端內,沒有發送探測包給客戶端的情況。

比如設置sqlnet.expire_time=10,最大空閑時間則可能為2*600=1200秒,如果防火墻空閑超時為910秒,完全可能出現在探測包發送之前,空閑連接就已經被斷開的情況。

2. 使用限制

新設置參數對舊連接上不生效(It is not allowed on bequeathed connections.)

探測數據包雖然很小,卻也會產生額外的流量,可能降低網絡性能

根據操作系統不同,服務器可能需要執行其他處理,以區分連接探測事件和其他事件,這也會導致網絡性能下降。

二、 IDLE_TIMEOUT

空閑超時時間。指定已建立的連接在不傳輸數據的情況下可以保持活動狀態的時間。

Oracle默認情況下不會關閉非活躍連接(IDLE_TIMEOUT=0),但非活躍連接過長時間不退出可能導致連接數過高,浪費數據庫資源。

將IDLE_TIMEOUT設置為大于0的值(單位為秒)指定會話空閑超時時間,到達超時時間后會話會被數據庫中斷。

通常防火墻會有kill空閑連接的配置,可以看看是否有必要重復設置。如果要設,IDLE_TIMEOUT指定的時間應該小于防火墻指定的空閑時間。

EXPIRE_TIME 與 IDLE_TIMEOUT的區別:

  • EXPIRE_TIME檢查的是客戶端由于各種原因已經異常中斷的會話,雖然v$session視圖看到處于inactive狀態,但其實該連接已經僵死,不會再有數據請求。

  • IDLE_TIMEOUT檢查的是處于inactive狀態超過指定時間的會話,即使客戶端正常連接,到達超時時間后也會將其中斷。

三、 SESSION_TIMEOUT

指定用戶會話允許的最長時間(以秒為單位)。很明顯這個參數要更進一步,無論用戶會話是不是空閑,到了SESSION_TIMEOUT指定就會被中斷。

默認值為0,表示禁用該功能。

四、 INBOUND_CONNECT_TIMEOUT

表示等待用戶認證超時的時間。單位是秒,默認60秒,如果客戶端在指定的時間內沒有連接上數據庫(例如用戶認證超時),會在listener.log中會出現 TNS-12535: TNS:operation timed out,在alert日志中記錄 WARNING: inbound connection timed out (ORA-3136) 和 TNS-12535。

另外在listener.ora中也有一個INBOUND_CONNECT_TIMEOUT參數,名為:inbound_connect_timeout_監聽器名。

如果建立監聽后在設置的時間內沒有反應將會斷開連接,單位是秒,默認60秒。

如果連接請求超時,listener.log中會出現 TNS-12525: TNS:listener has not received client's request in time allowed。

關于兩者之間的關系,官方文檔建議INBOUND_CONNECT_TIMEOUT_listener_name的值低于SQLNET.INBOUND_CONNECT_TIMEOUT。

Set both parameters to an initial low value.

Set the value of the INBOUND_CONNECT_TIMEOUT_listener_name parameter to a lower value than the SQLNET.INBOUND_CONNECT_TIMEOUT parameter.

For example, you can set INBOUND_CONNECT_TIMEOUT_listener_name to 2 seconds and INBOUND_CONNECT_TIMEOUT parameter to 3 seconds. If clients are unable to complete connections within the specified time due to system or network delays that are normal for the particular environment, then increment the time as needed.

前面幾個參數都是系統級的,下面來看可以在用戶級指定的超時參數。

五、 profile中的idle_time

用戶級的空閑超時時間。單位是分鐘,默認是UNLIMITED,連接始終不會被斷開,這就占用了連接數資源。

配置步驟如下,注意設置后對已經連上的會話不生效,對新連上的會話才生效。

-- 查找用戶所屬的profile,例如叫APP_USER
select username, b.*
from dba_users a, dba_profiles b
where a.profile = b.profile and username='USERNAME';
 
-- 更改該profile的idle_time
alter profile app_user limit idle_time 30;
 
-- 使修改的資源生效,需要設置resource_limit設置為true
alter system set resource_limit=true;

如果用戶空閑超過指定時間,會報錯ORA-02396:exceeded maximum idle time, please connect again

六、 profile中的connect_time

用戶級的會話超時時間(類似前面SESSION_TIMEOUT),單位是分鐘,默認是UNLIMITED。

用戶會話在到達設置的時候后不能再繼續操作(無論期間是不是空閑)。

設置方法跟前面類似

-- 查找用戶所屬的profile,例如叫APP_USER
select username, b.*
from dba_users a, dba_profiles b
where a.profile = b.profile and username='USERNAME';
 
-- 更改該profile的connect_time
alter profile app_user limit connect_time 30;
 
-- 使修改的資源生效,需要設置resource_limit設置為true
alter system set resource_limit=true;

如果是設置1分鐘,會在將近2分鐘的時候提醒你重新登錄,ORA-02399: exceeded maximum connect time, you are being logged off。

以上就是“Oracle各類連接超時相關參數怎么使用”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宿迁市| 井研县| 惠州市| 永顺县| 佛坪县| 汤原县| 景洪市| 莱阳市| 洱源县| 环江| 霍山县| 墨玉县| 潜江市| 江阴市| 开鲁县| 鄂托克前旗| 巴彦县| 文安县| 冷水江市| 神池县| 太白县| 左云县| 磴口县| 东港市| 宜兴市| 吐鲁番市| 竹北市| 武胜县| 白城市| 新野县| 台北市| 当雄县| 张家港市| 都江堰市| 玉环县| 平武县| 扎鲁特旗| 平果县| 宝坻区| 永春县| 双桥区|