新上線 10.2.0.2 資料庫 alert.log 連續出現 WARNING: inbound connection timed out (ORA-3136),伴隨 sqlnet.log 記錄 TNS-12535: operation timed out。根因:預設 INBOUND_CONNECT_TIMEOUT 過短(60 秒),導致緩慢連線被截斷。
alert.log:
WARNING: inbound connection timed out (ORA-3136)
sqlnet.log:
Fatal NI connect error 12170
TNS-12535: TNS:operation timed out
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=192.168.1.123)(PORT=58147))
listener.ora 設定:
INBOUND_CONNECT_TIMEOUT_listener_name = 0 -- 0 表停用逾時
sqlnet.ora(Server 端)設定:
SQLNET.INBOUND_CONNECT_TIMEOUT = 0
lsnrctl reload
lsnrctl show inbound_connect_timeout
-- 顯示 LISTENER parameter "inbound_connect_timeout" set to 0
Oracle 建議保留逾時設定以防 DoS 攻擊(惡意佔用連線槽)。若設為 0,需配合防火牆、VALID_NODE_CHECKING_REGISTRATION、TCP.VALIDNODE_CHECKING 等網路層防護。
10g R2 (10.2.0.1+) 引入此參數預設值變更,11g/12c/19c 同樣適用。
生產環境建議設定合理值(如 180~300 秒)而非完全停用,兼顧可用性與安全性。