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

Oracle RAC 監聽資源狀態異常 (ora.LISTENER.lsnr OFFLINE) 根因:監聽密碼導致 CRS 檢查失敗

     編輯:Oracle 教學

Oracle RAC 監聽資源狀態異常 (ora.LISTENER.lsnr OFFLINE) 根因:監聽密碼導致 CRS 檢查失敗

記錄一次 11.2.0.3 RAC (AIX) 環境中,crsctl stat res -t 顯示 ora.LISTENER.lsnr 狀態 ONLINE OFFLINE (節點 1 ONLINE、節點 2 OFFLINE),但 lsnrctl status 顯示監聽正常運行。根因:監聽設置密碼導致 CRS 代理 oraagent 執行 lsnrctl status 時認證失敗 (TNS-01169),進而標記資源 OFFLINE。

環境基線

  • OS:AIX 6.1 TL9
  • DB:11.2.0.3 RAC 兩節點
  • Grid Home:/oracle/app/11.2.0/grid

現象複現

[check] lsnrctl status LISTENER
...
(:CLSN00010:) TNS-01169: The listener has not recognized the password
...
state changed from: STARTING to: OFFLINE

根因確認

  • 監聽配置了 PASSWORDS_LISTENER (或 11g SECURE_REGISTER_LISTENER 相關參數)。
  • CRS oraagent 定期 (默認 60s) 執行 lsnrctl status LISTENER 健康檢查。
  • lsnrctl 無密碼參數下連接監聽,被監聽拒絕 (TNS-01169)。
  • oraagent 將非零退出碼解釋為檢查失敗,置資源狀態 OFFLINE。

影響評估

業務零影響:監聽進程實際存活、端口監聽正常、服務註冊正常、客戶端連接無阻礙。僅 CRS 監控面板顯示異常,可能干擾自動化巡檢腳本。

解決方案 (暫無完美官方修補,三選一)

方案操作優缺點
1. 移除監聽密碼 (推薦)lsnrctl set password → 輸入舊密碼 → lsnrctl change_password → 留空新密碼 → save_config+ 徹底解決
- 降低監聽管理安全性 (內網可接受)
2. 修改 oraagent 檢查邏輯 (非官方)編輯 $GRID_HOME/bin/lsnrctl 包裝腳本自動餵密碼,或修改 oraagent 內部邏輯 (不支持、升級失效)- 風險極高、不建議
3. 忽略告警 + 外部監控補位巡檢腳本改用 lsnrctl status 直接檢查進程/端口/服務,不依賴 crsctl stat res+ 保留密碼
- 需維護額外監控

驗證移除密碼後效果

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved