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

Oracle 連線常見錯誤代碼與快速排查指南:ORA-12535、ORA-12541 等

     編輯:Oracle 資料庫基礎

通用診斷第一步

命令列執行 tnsping 服務名 檢查網路層面連通性,依錯誤代碼進一步排查。

高頻錯誤與解決方案

ORA-12535: TNS:操作逾時

最常見原因:防火牆攔截。優先關閉或在防火牆開放 1521 埠(或自訂埠)。

次要檢查: tnsnames.ora 設定中 HOST 是否正確(IP vs 主機名)、PORT 是否一致、SID/SERVICE_NAME 是否匹配。

# 正確範例
ORCL =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.1)(PORT = 1521)))
    (CONNECT_DATA = (SERVICE_NAME = orcl.dbse.lamost))
  )

ORA-12541: TNS:沒有監聽器

監聽器未啟動。命令列執行:

lsnrctl start

若仍失敗,檢查 listener.ora 設定、埠號衝突、主機名解析。

擴充排查清單

錯誤代碼典型原因快速檢查動作
ORA-12514監聽器不知道請求的 SID/Service檢查 listener.ora SID_LIST 或動態註冊狀態 (lsnrctl services)
ORA-12505類似 12514,Service Name 不匹配確認 tnsnames.ora SERVICE_NAME 與資料庫 service_names 參數一致
ORA-12170連線逾時(客戶端等待)防火牆、網路延遲、sqlnet.ora SQLNET.OUTBOUND_CONNECT_TIMEOUT
ORA-01017帳號/密碼錯誤確認大小寫、密碼檔、sec_case_sensitive_logon
ORA-12560協定介面卡錯誤(Windows 常見)OracleService 未啟動、ORACLE_SID 環境變數錯誤、DLL 路徑問題

最佳實踐建議

  1. 統一使用 SERVICE_NAME 而非 SID,支援 RAC/Data Guard 切換。
  2. 客戶端 sqlnet.ora 設定 NAMES.DIRECTORY_PATH=(TNSNAMES, EZCONNECT) 簡化連線字串。
  3. 監聽器啟用 ADMIN_RESTRICTIONS=ON 防止遠程非授權管理。
  4. 定期備份 tnsnames.ora, listener.ora, sqlnet.ora 至版控系統。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved