ORA-3136 錯誤解決 .

劍舞刀鋒發表於2014-01-07

參考metalink的文件:Doc ID: Note:3136.1 and 465043.1


WARNING: inbound connection timed out (ORA-3136)


1.引數含義:
SQLNET.INBOUND_CONNECT_TIMEOUT is set to a value in seconds and determines how long a client has to

provide the necessary authentication information to a database.


INBOUND_CONNECT_TIMEOUT_listenername is set to a value in seconds and determines how long a client has

to complete its connect request to the listener after the network connection has been established.


2.引數意義:
在oracle 10.2以後的版本當中將SQLNET.INBOUND_CONNECT_TIMEOUT 和 INBOUND_CONNECT_TIMEOUT_listenername參

數設定預設為60s,之前的版本當中預設為0(即關閉此功能)。這兩個引數用於防止惡意client通過網路攻擊db

server


Note: This timeout restriction was introduced to combat Denial of Service (DoS) attack whereby

malicious clients attempt to flood database servers with connect requests that consumes resources.


3.報出此warning的原因如下:


a.server收到一個從惡意client發來的連線請求,在這種情況下丟擲的錯誤將是預期的和可取的。(客戶端反覆輸錯

username/password)
b.伺服器接收到一個有效的客戶端連線請求,但客戶需要很長時間來驗證超過預設60秒。(客戶端網路延遲)
c.DB伺服器負載很高導致它無法在指定時間內完成客戶端登入請求。(資料庫伺服器高負載)


4.解決辦法:
a.驗證db server端,本地連線是否成功(listener是否可用)
b.驗證本地連線是否延遲(本地網路是否高效可用)
c.驗證資料庫效能(db server是否高負載)
d.告警日誌是否在之前報過ORA-600或ORA-7445
e.檢查是否有client反覆嘗試登入密碼(這是目前最有可能的原因)
f.關閉此功能(將2引數設定為0,設定方法參照步驟5)也可將2引數設定為適當值。


5.修改這兩個引數的方法如下:


Edit the server side sqlnet.ora file and add this parameter:
SQLNET.INBOUND_CONNECT_TIMEOUT=  Where is the value in seconds.
E.g.:
SQLNET.INBOUND_CONNECT_TIMEOUT = 120


Edit the listener.ora file and add this parameter:
INBOUND_CONNECT_TIMEOUT_ =   Again, where is the timeout value in seconds. 
For example if the listener name is LISTENER then use:
INBOUND_CONNECT_TIMEOUT_LISTENER = 110


6.總結:
此warning提示,極有可能是有客戶端在不知道密碼的情況下,反覆嘗試連線資料庫或登入延遲導致,個人認為可以

忽略,重啟監聽並不會解決該問題,只是暫時清空了監聽的告警資訊,也可觀察一段時間,或抓取效能分析報告,確

認是否為負載過高導致效能下降從而引起的告警。
 


 

:ORA-3136 錯誤解決
:ORA-3136 錯誤解決

1、首先通過後臺alter日誌發現報如下錯誤:
Mon May 20 12:44:19 2013
WARNING: inbound connection timed out (ORA-3136)
Mon May 20 12:44:19 2013
WARNING: inbound connection timed out (ORA-3136)
Mon May 20 12:44:19 2013
WARNING: inbound connection timed out (ORA-3136)
 
2、觀察sqlnet.log中記錄如下錯誤:
Fatal NI connect error 12514, connecting to:
 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=XXXXX)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)
(SERVICE_NAME=XXXXXXXX)(INSTANCE_NAME=XXXX)(CID=(PROGRAM=XXXXXX)(HOST=XXXXXX)
(USER=oracle))))
  VERSION INFORMATION:
 TNS for Linux: Version 10.2.0.1.0 - Production
 TCP/IP NT Protocol Adapter for Linux: Version 10.2.0.1.0 - Production
  Time: 28-11月-2008 14:10:42
  Tracing not turned on.
  Tns error struct:
    ns main err code: 12564
    TNS-12564: TNS:connection refused
    ns secondary err code: 0
    nt main err code: 0
    nt secondary err code: 0
    nt OS err code: 0
 
3、重新reload一下Listner:
  
[oracle@XXX ~]$ lsnrctl
LSNRCTL for Linux: Version 10.2.0.4.0 - Production on 20-5月 -2013 12:54:56
Copyright (c) 1991, 2007, Oracle.  All rights reserved.
Welcome to LSNRCTL, type "help" for information.
 
LSNRCTL> reload
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
The command completed successfully

 
LSNRCTL> services
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
Services Summary...
Service "+ASM" has 1 instance(s).
  Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "+ASM_XPT" has 1 instance(s).
  Instance "+ASM2", status BLOCKED, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         LOCAL SERVER
Service "PLSExtProc" has 1 instance(s).
  Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0
         LOCAL SERVER
Service "XXXXXXXX" has 2 instance(s).
  Instance "XXXXXX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:16 refused:0 state:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=tcp)(HOST=XXXXXXXX)(PORT=1521))
  Instance "XXXXXX", status READY, has 2 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=tcp)(HOST=XXXXXX)(PORT=1521))
      "DEDICATED" established:31 refused:0 state:ready
         LOCAL SERVER
Service "XXXXXXXXX" has 2 instance(s).
  Instance "XXXXXX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:972 state:ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=XXXXXX)(PORT=6661))
  Instance "XXXXXX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "D000" established:0 refused:0 current:0 max:1022 state:ready
         DISPATCHER
         (ADDRESS=(PROTOCOL=tcp)(HOST=XXXXX)(PORT=51924))
Service "XXXXXXXX" has 2 instance(s).
  Instance "XXXXXXX", status READY, has 1 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:16 refused:0 state:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=tcp)(HOST=XXXXX)(PORT=1521))
  Instance "XXXXXXX", status READY, has 2 handler(s) for this service...
    Handler(s):
      "DEDICATED" established:0 refused:0 state:ready
         REMOTE SERVER
         (ADDRESS=(PROTOCOL=tcp)(HOST=XXXXXXX)(PORT=1521))
      "DEDICATED" established:31 refused:0 state:ready
         LOCAL SERVER
The command completed successfully

LSNRCTL> show inbound_connect_timeout
Connecting to (ADDRESS=(PROTOCOL=tcp)(HOST=)(PORT=1521))
LISTENER parameter "inbound_connect_timeout" set to 60
The command completed successfully
 
4、修改之後觀察一段時間系統恢復正常。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29429468/viewspace-1067877/,如需轉載,請註明出處,否則將追究法律責任。

相關文章