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

64 位 Windows Oracle Client/Server 版本對應與通訊問題排查

     編輯:Oracle 教學

64 位 Windows Oracle Client/Server 版本對應與通訊問題排查

64 位 Windows 環境下,Oracle Client 與 Server 版本、位元數匹配是通訊成功的關鍵。本文整理常見版本對應原則、PL/SQL Developer 等工具連線失敗排查步驟、tnsnames.ora 配置要點。

核心原則

  • 位元數必須一致: 64 位 Server 需 64 位 Client;32 位 Server 需 32 位 Client。跨位元數連線不被支援。
  • 版本相容性: Client 版本應 ≥ Server 版本主要版本 (如 11g Client 可連 10g/11g Server;10g Client 連 11g Server 可能受限)。
  • Oracle Home 隔離: 同一機器可安裝多個 Oracle Home (32/64 位共存),但單一進程只能載入一種位元數的 DLL。

常見問題:Client 連得上,工具連不上

現象: TNSPING 正常、SQL*Plus 可連線,但 PL/SQL Developer / 應用程式報錯 ORA-12154 或 BadImageFormatException。

原因: 工具為 32 位進程 (如舊版 PL/SQL Developer),嘗試載入 64 位 OCI.DLL 失敗。

解決:

  1. 安裝 32 位 Oracle Instant Client (另一 Oracle Home)
  2. 配置工具使用 32 位 Client 路徑 (PL/SQL Developer: Tools → Preferences → Oracle Home)
  3. 確認 TNS_ADMIN 環境變數指向正確 tnsnames.ora

tnsnames.ora 關鍵配置

MYDB =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = db-server)(PORT = 1521))
    (CONNECT_DATA =
      (SERVICE_NAME = orcl)  -- 或 (SID = orcl) 視服務端而定
    )
  )

注意: 服務端若為 SERVICE_NAME,客戶端必須用 SERVICE_NAME;不可混用 SID。

驗證步驟

  1. TNSPING MYDB 確認網路解析正常
  2. SQLPLUS user/pwd@MYDB 確認基本連線
  3. 檢查工具使用的 Oracle Home 位元數與 Client 位元數一致
  4. 應用程式連線字串驗證
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved