首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計綜合問答

Oracle 10g RAC 連線失敗排查:LOAD_BALANCE 模式下 TNS 解析異常

     編輯:程式設計綜合問答

現象

  • 新安裝 Oracle 10g on Linux,配置 tnsnames.ora 含 LOAD_BALANCE=yes 的兩個節點位址(掃描 VIP)。
  • tnsping 失敗,但拆分為單節點配置則成功。
  • 同樣配置從舊主機複製過來,舊主機正常。

可能原因與排查步驟

  1. sqlnet.ora 缺失或錯誤:新安裝預設可能無 NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT),導致無法解析 TNS 別名。
    → 檢查 $ORACLE_HOME/network/admin/sqlnet.ora,補全或複製舊主機版本。
  2. 掃描 VIP (SCAN) 未就緒:RAC 叢集資源未完全啟動,SCAN Listener 未註冊。
    → srvctl status scan, srvctl status scan_listener 確認狀態。
  3. 防火牆/網路隔離:新主機防火牆阻擋 1521 或 SCAN 端口。
    → telnet scan_ip 1521 測試連通性。
  4. CLUSTER_INTERCONNECTS 參數:私有網路介面配置錯誤導致節點間心跳失敗,影響負載均衡。
    → 檢查 init.ora / spfile。
  5. TNS_ADMIN 環境變數:指向錯誤目錄,讀取舊配置。
    → echo $TNS_ADMIN 確認。

驗證指令

tnsping aadb          # 測試負載均衡別名
tnsping aadb1         # 測試單節點別名
sqlplus user/pass@aadb # 嘗試連線

建議

優先檢查 sqlnet.ora 與 SCAN Listener 狀態;若環境一致仍失敗,對比 strace -f sqlplus ... 系統呼叫差異定位。

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