首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

修改主機名或 IP 後 Oracle 10g 服務無法啟動的完整修復方案

     編輯:Oracle 資料庫相關知識

故障現象

Windows 服務中 OracleDBConsole<SID> 無法啟動,報錯:
Windows 不能在本地計算機啟動 OracleDBConsoleorcl。錯誤代碼 2

根因:Oracle 10g 安裝後,主機名或 IP 變更導致存儲在配置文件與註冊表中的舊網絡標識失效。

修復步驟(按順序執行)

第一步:刪除原數據庫實例

路徑:開始 → 所有程序 → Oracle - OraDb10g_home1 → 配置和移植工具 → Database Configuration Assistant
選擇「刪除數據庫」→ 選擇 orcl → 完成刪除。
建議: 在制作母盤鏡像前完成此步,否則刪除後需重啟機器。

第二步:重新配置監聽程序

路徑:Net Configuration Assistant → 監聽程序配置 → 重新配置
一路「下一步」,最後選擇「否」(不啟動監聽器),完成。此步會重寫 listener.ora 並更新註冊表中的主機名。

第三步:重新創建數據庫實例

再次運行 Database Configuration Assistant → 「創建數據庫」
關鍵設置:
- 全局數據庫名:orcl(SID 自動同步)
- 所有賬戶同一口令:welcome(或原安裝口令)
- 其餘默認即可。

第四步:重置本地 Net 服務名

Net Configuration Assistant → 本地 Net 服務名配置
1. 刪除舊服務名
2. 新增服務名 orcl → 協議 TCP → 輸入當前真實主機名(從「我的電腦 → 屬性」獲取)
3. 測試連接 → 口令改為 welcome → 完成

第五步:驗證

  1. 用 PL/SQL Developer 嘗試登錄
  2. 瀏覽器訪問 https://<主機名或IP>:1158/em(端口可能變為 5500 等),用 system/orcl 登錄 Enterprise Manager

核心原理

Oracle 10g 在安裝時將主機名/IP 固化至:
- listener.ora、tnsnames.ora
- Windows 註冊表 HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE
- EM Repository 中的目標元數據
上述步驟實質是重建所有持久化的網絡標識。

避坑指南

  • 克隆/遷移虛擬機前,先在源端執行 DBCA 刪除實例與 NetCA 重置監聽。
  • 修改主機名/IP 後,優先檢查 hostname、ipconfig、ping 解析是否一致。
  • 若 EM 端口衝突,可在 emctl config agent listtargets 確認實際端口。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved