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

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

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

瀏覽:25日期: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ù)進行檢測)。

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

              如果超過最大重試次數(shù)仍重傳失敗,將返回錯誤并通知oracle pmon進程清除對應(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ù)過高,浪費數(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),但其實該連接已經(jīng)僵死,不會再有數(shù)據(jù)請求。
              • IDLE_TIMEOUT檢查的是處于inactive狀態(tài)超過指定時間的會話,即使客戶端正常連接,到達(dá)超時時間后也會將其中斷。

              三、 SESSION_TIMEOUT

              指定用戶會話允許的最長時間(以秒為單位)。很明顯這個參數(shù)要更進一步,無論用戶會話是不是空閑,到了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)驗,希望能給大家一個參考,也希望大家多多支持。

              標(biāo)簽: Oracle
              主站蜘蛛池模板: 亚洲精品视| 一级aaa级毛片午夜在线播放 | 白嫩美女一级毛片免费看 | 99在线精品免费视频九九视 | 国产精品久久久久网站 | 亚洲一区二区三区不卡视频 | 亚洲精品一区二区三区在线观看 | 在线亚洲黄色 | 国产成人精品女人不卡在线 | 亚洲国产精品久久精品成人 | 色女生影院 | 国产欧美日韩中文久久 | 欧美精品成人久久网站 | 国产99视频精品免费观看9e | 狠狠五月深爱婷婷网 | 在线观看国产一区 | 欧美日韩日本国产 | 久久精品国产一区二区 | 免费一级夫妻a | 久久久国产一区二区三区丝袜 | 婷婷在线成人免费观看搜索 | 免费小视频在线观看 | 亚洲性色视频 | 亚洲国产成人久久综合一 | 在线步兵区 | 日韩三级视频在线观看 | 中文字幕波多野不卡一区 | 亚洲 [12p]| 麻豆md国产在线观看 | 可以免费看黄的网址 | 亚洲福利视频精选在线视频 | 狠狠色丁香久久综合网 | 日本高清在线精品一区二区三区 | 毛片中文字幕 | 99午夜高清在线视频在观看 | 精品国产三级a∨在线观看 精品国产三级a在线观看 | 亚洲人成影院在线高清 | 成人精品一区二区三区中文字幕 | 久久久久国产成人精品 | 男人天堂视频网站 | 免看一级a毛片一片成人不卡 |