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

Windows 2000 Server 同機安裝 Oracle 9i 與 10g 完整實戰筆記

     編輯:Oracle 資料庫基礎

安裝環境與原則

  • OS:Windows 2000 Server
  • 軟體:Oracle 9i (先裝) → Oracle 10g 10.2 (後裝)
  • **安裝路徑必須不同** (如 D:\oracle\ora92 / D:\oracle\product\10.2.0)
  • 監聽端口**錯開** (9i: 1522, 10g: 1521)

標準安裝流程

  1. 安裝 Oracle 9i → 完成後**關閉所有 9i 服務**
  2. 安裝 Oracle 10g → 指定不同 Oracle Home → 完成
  3. 重啟系統 (建議)
  4. 修改 9i 監聽端口:listener.ora、tnsnames.ora、snmp_ro.ora 將 1521 改為 1522

常見問題與解決方案

問題 1:9i 安裝後無法啟動 (提示「Oracle 不可用」)

sqlplus /nolog
CONN sys/sys AS SYSDBA
STARTUP

問題 2:裝完 10g 並修改 9i 端口後,9i 仍無法啟動,tnsping orcl9i 指向 10g 目錄

根因:環境變數 Path 中 10g 的 bin 目錄在 9i 之前,導致 sqlplus、tnsping 呼叫 10g 客戶端。

方法一:調整 Path 順序 (推薦)

我的電腦 → 內容 → 進階 → 環境變數 → 系統變數 Path
將 "D:\oracle\ora92\bin" 移至 "D:\oracle\product\10.2.0\bin" **之前**
重啟系統 → 再執行問題 1 的 STARTUP 流程

方法二:同步雙邊 tnsnames.ora (不動 Path)

  1. 將 9i 的 tnsnames.ora 內容**複製到 10g 的 tnsnames.ora**
  2. 同步修改 9i 端 tnsnames.ora 確保自連正確
  3. 使用帶連線描述符啟動:
sqlplus /nolog
CONN sys/sys@orcl9i AS SYSDBA
STARTUP

雙邊 tnspnames.ora 參考範本

10g 端 (D:\oracle\product\10.2.0\network\admin\tnsnames.ora)

ORCL10G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xt-b271dac81b07)(PORT = 1521))
    (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl10g))
  )

ORCL9I =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xt-b271dac81b07)(PORT = 1522)))
    (CONNECT_DATA = (SERVICE_NAME = ORCL9I))
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1)))
    (CONNECT_DATA = (SID = PLSExtProc)(PRESENTATION = RO))
  )

9i 端 (D:\oracle\ora92\network\admin\tnsnames.ora)

ORCL10G =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = xt-b271dac81b07)(PORT = 1521))
    (CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = orcl10g))
  )

ORCL9I =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xt-b271dac81b07)(PORT = 1522)))
    (CONNECT_DATA = (SERVICE_NAME = ORCL9I))
  )

INST1_HTTP =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = xt-b271dac81b07)(PORT = 1522)))
    (CONNECT_DATA = (SERVER = SHARED)(SERVICE_NAME = MODOSE)(PRESENTATION = https://HRService))
  )

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0)))
    (CONNECT_DATA = (SID = PLSExtProc)(PRESENTATION = RO))
  )

關鍵檢查清單

項目9i10g
Oracle HomeD:\oracle\ora92D:\oracle\product\10.2.0
監聽端口15221521
SID / Service NameORCL9Iorcl10g
Path 順序**優先**次之
tnsnames.ora含 9i/10g 兩組含 9i/10g 兩組
啟動驗證sqlplus sys@orcl9i as sysdbasqlplus sys@orcl10g as sysdba

現代視角補充

  • Windows 2000 / Oracle 9i/10g **均已停止支援**,生產環境請規劃遷移至 Windows Server 2019/2022 + Oracle 19c/21c/23c。
  • 多版本共存現代最佳實踐:**Oracle Home Selector** (Windows) 或 oraenv/coraenv (Linux) 切換環境,而非依賴 Path 順序。
  • 容器化部署 (Docker/Podman) 可徹底隔離版本,避免「DLL 地獄」與 Path 衝突。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved