亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

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

Oracle之關于各類連接超時相關參數學習

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

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

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

              一、 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
              主站蜘蛛池模板: 国产午夜视频在线观看第四页 | 在线精品视频免费观看 | 91久久青草精品38国产 | 成人亚洲欧美日韩在线观看 | 非洲特黄一级毛片高清视频 | 香港毛片在线观看 | 黄色福利视频网站 | 可以免费看黄的网址 | 国产++欧洲韩国野花视频 | 国产普通话自拍 | 青草国产精品久久久久久 | 国产成人一区二区三区影院免费 | 国产黄色一级网站 | 欧美一区二区三区免费播放 | 1024在线看片| 国产理论视频在线观看 | 网址大全在线免费观看 | 大桥未久日韩欧美亚洲国产 | 激情五月婷婷 | 日本人伦一区二区三区 | 免费国产不卡午夜福在线 | 羞羞答答免费人成黄页在线观看国产 | 香蕉视频在线观看视频 | 99欧美精品| 丁香亚洲综合五月天婷婷 | 黄色毛片免费在线观看 | 婷婷色吧 | 韩国日本一级毛片免费视频 | 91香蕉视频在线看 | 国外成人免费高清激情视频 | 一级爱做片免费观看久久 | 精品免费在线视频 | 91视频中文字幕 | 亚洲乱淫| 国产成人一区二区 | 香蕉钻洞视频 | 国产成人18黄网站在线观看网站 | 特级全黄大片 | 欧美视频在线一区二区三区 | 人与牲动交xxxxbbbb高清 | 欧美一级毛片日韩一级 |