首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> DB2 資料庫 >> DB2 教學

RAC 環境下 Fatal NI Connect Error 12170 排查與解決

     編輯:DB2 教學

RAC 環境下 Fatal NI Connect Error 12170 排查與解決

錯誤現象

告警日誌反覆出現:


Fatal NI connect error 12170.
TNS-12535: TNS:operation timed out
ns secondary err code: 12606
Client address: (ADDRESS=(PROTOCOL=tcp)(HOST=10.53.105.20)(PORT=19164))

環境

Oracle 11.2.0.1 RAC,Linux,Grid Infrastructure 管理監聽器。

根因分析

客戶端連接建立後,因網路抖動、防火牆、或監聽器處理緩慢,導致監聽器在預設超時時間(60 秒)內未完成握手,主動斷開並記錄 12535/12170。RAC 下多節點監聽器配置不一致會放大此問題。

解決方案:調整監聽器超時參數

  1. 確認監聽器狀態:
lsnrctl status

輸出顯示監聽端點包含 VIP (10.53.105.24) 與 SCAN IP。

  1. 編輯 listener.ora(Grid Home $GRID_HOME/network/admin/):
# 權限調整
chmod 775 listener.ora sqlnet.ora

# 添加參數
INBOUND_CONNECT_TIMEOUT_LISTENER = 0   -- 0 表示無限等待,防止握手超時
DIAG_ADR_ENABLED_LISTENER = OFF        -- 關閉 ADR 診斷,減少開銷(可選)
  1. 重新載入監聽器配置:
lsnrctl reload
# 或重啟
lsnrctl stop listener1
lsnrctl start listener1

驗證

觀察告警日誌 24 小時,不再出現 12170/12535,客戶端連接穩定。

補充建議

  • 檢查網路層:VIP/SCAN IP 連通性、MTU 設定、防火牆規則。
  • 客戶端 sqlnet.ora 設定 SQLNET.OUTBOUND_CONNECT_TIMEOUT 適當增大。
  • 若使用 SCAN,確保 DNS/GNS 解析正確,SCAN Listener 正常運行。
  • 生產環境修改參數前建議在測試環境驗證影響。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved