av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

Oracle之關(guān)于各類連接超時相關(guān)參數(shù)學(xué)習(xí)

瀏覽:21日期:2023-05-30 16:13:58
目錄
  • 一、 EXPIRE_TIME
    • 1. 使用說明
    • 2. 使用限制
  • 二、 IDLE_TIMEOUT
    • 三、 SESSION_TIMEOUT
      • 四、 INBOUND_CONNECT_TIMEOUT
        • 五、 profile中的idle_time
          • 六、 profile中的connect_time
            • 總結(jié)

              最近遇到些空閑連接超時相關(guān)的問題,查了下主要有以下與超時相關(guān)參數(shù),整理記錄含義及區(qū)別。

              • EXPIRE_TIME
              • IDLE_TIMEOUT
              • SESSION_TIMEOUT
              • INBOUND_CONNECT_TIMEOUT
              • profile中的idle_time
              • profile中的connect_time

              一、 EXPIRE_TIME

              1. 使用說明

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

              一旦發(fā)現(xiàn)異常連接,最多會重傳操作系統(tǒng)參數(shù)tcp_retries2指定次數(shù)。

              如果超過最大重試次數(shù)仍重傳失敗,將返回錯誤并通知oracle pmon進(jìn)程清除對應(yīng)的server process。

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

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

              2. 使用限制

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

              探測數(shù)據(jù)包雖然很小,卻也會產(chǎn)生額外的流量,可能降低網(wǎng)絡(luò)性能

              根據(jù)操作系統(tǒng)不同,服務(wù)器可能需要執(zhí)行其他處理,以區(qū)分連接探測事件和其他事件,這也會導(dǎo)致網(wǎng)絡(luò)性能下降。

              二、 IDLE_TIMEOUT

              空閑超時時間。指定已建立的連接在不傳輸數(shù)據(jù)的情況下可以保持活動狀態(tài)的時間。

              Oracle默認(rèn)情況下不會關(guān)閉非活躍連接(IDLE_TIMEOUT=0),但非活躍連接過長時間不退出可能導(dǎo)致連接數(shù)過高,浪費(fèi)數(shù)據(jù)庫資源。

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

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

              EXPIRE_TIME 與 IDLE_TIMEOUT的區(qū)別:

              • EXPIRE_TIME檢查的是客戶端由于各種原因已經(jīng)異常中斷的會話,雖然v$session視圖看到處于inactive狀態(tài),但其實(shí)該連接已經(jīng)僵死,不會再有數(shù)據(jù)請求。
              • IDLE_TIMEOUT檢查的是處于inactive狀態(tài)超過指定時間的會話,即使客戶端正常連接,到達(dá)超時時間后也會將其中斷。

              三、 SESSION_TIMEOUT

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

              默認(rèn)值為0,表示禁用該功能。

              四、 INBOUND_CONNECT_TIMEOUT

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

              另外在listener.ora中也有一個INBOUND_CONNECT_TIMEOUT參數(shù),名為:inbound_connect_timeout_監(jiān)聽器名。

              如果建立監(jiān)聽后在設(shè)置的時間內(nèi)沒有反應(yīng)將會斷開連接,單位是秒,默認(rèn)60秒。

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

              關(guān)于兩者之間的關(guān)系,官方文檔建議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.

              前面幾個參數(shù)都是系統(tǒng)級的,下面來看可以在用戶級指定的超時參數(shù)。

              五、 profile中的idle_time

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

              配置步驟如下,注意設(shè)置后對已經(jīng)連上的會話不生效,對新連上的會話才生效。

              -- 查找用戶所屬的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;
              ?
              -- 使修改的資源生效,需要設(shè)置resource_limit設(shè)置為true
              alter system set resource_limit=true;

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

              六、 profile中的connect_time

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

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

              設(shè)置方法跟前面類似

              -- 查找用戶所屬的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;
              ?
              -- 使修改的資源生效,需要設(shè)置resource_limit設(shè)置為true
              alter system set resource_limit=true;

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

              總結(jié)

              以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持。

              標(biāo)簽: Oracle
              主站蜘蛛池模板: 97国产视频 | 黄色成人毛片 | 91成人国产 | 色网站在线观看 | 能看的av网站 | 中文在线字幕观看 | 午夜一级片| 色婷婷精品 | 97色综合| 可以免费看黄的网站 | 日韩精品免费在线观看 | 精品一区二区三区在线观看 | 国产91清纯白嫩初高中在线观看 | 欧美激情一区二区三区 | 精品国产乱码久久久久久88av | 日韩一区二区三区精品 | 国产小视频在线 | 国产精品一区二区在线播放 | 中文字幕在线观看一区 | 欧美性猛交一区二区三区精品 | 99视频免费观看 | 日韩成人小视频 | 国产激情久久 | 日韩不卡在线观看 | 黄色录像一级片 | 天天干天天干天天干 | 欧美色婷婷 | 免费观看一区二区 | 国产精品一区二区不卡 | 久久机热| 懂色av成人一区二区三区 | 国产欧美日韩 | www.欧美日韩| 四虎永久网址 | 色多多视频在线观看 | 久久久www成人免费精品 | 国产精品久久久久久无人区 | 一级毛片久久久 | 日韩免费大片 | 欧美成人激情视频 | 精品黑人一区二区三区国语馆 |