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

Oracle 錯誤診斷實戰:ORA-00119 與 ORA-00132 根因分析與雙重修復方案

     編輯:Oracle 教學

Oracle 錯誤診斷實戰:ORA-00119 與 ORA-00132

PL/SQL Developer 突然無法連線、無報錯碼直接卡死。查閱 oradim.log 發現雙重錯誤:

ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_DRP'

根因為 LOCAL_LISTENER 參數引用的網路別名 LISTENER_DRP 在 tnsnames.ora 中遺失或定義錯誤。本文提供兩套修復方案:tnsnames.ora 補全法與 SPFILE/PFILE 參數重建法。

方案一:補全 tnsnames.ora(最快、推薦)

  1. 定位 $ORACLE_HOME/network/admin/tnsnames.ora。
  2. 確認/新增對應 SID 的監聽器條目:
LISTENER_DRP =
  (ADDRESS = (PROTOCOL = TCP)(HOST = your_hostname)(PORT = 1521))
  • DRP 為資料庫 SID,HOST 為實際主機名(非 IP),PORT 與 listener.ora 一致。
  • 存檔後,SQL*Plus 執行 STARTUP 即可正常掛載/開啟。

方案二:重建 SPFILE 修正 LOCAL_LISTENER 參數(適用 tnsnames.ora 正確但參數值錯誤)

  1. 由 SPFILE 產生 PFILE:
SQL> CREATE PFILE='D:\app\oracle\product\11.2.0\dbhome_1\database\INITdrp.ORA'
     FROM SPFILE='D:\app\oracle\product\11.2.0\dbhome_1\database\SPFILEDRP.ORA';
  1. 編輯 PFILE (INITdrp.ORA):找到 local_listener 行,修正為完整 ADDRESS_LIST 格式:
local_listener='(ADDRESS_LIST=(ADDRESS=(PROTOCOL=TCP)(HOST=your_hostname)(PORT=1521)))'
  1. 由修正後 PFILE 重建 SPFILE:
SQL> CREATE SPFILE='D:\app\oracle\product\11.2.0\dbhome_1\database\SPFILEDRP.ORA'
     FROM PFILE='D:\app\oracle\product\11.2.0\dbhome_1\database\INITdrp.ORA';
  1. 啟動資料庫:
SQL> STARTUP

驗證與預防

  • 啟動成功後,執行 SHOW PARAMETER local_listener 確認值正確。
  • LSNRCTL STATUS 確認監聽器服務已註冊。
  • 建立資料庫時同步規劃 tnsnames.ora、listener.ora、LOCAL_LISTENER 三者一致性。
  • 變更主機名/IP/埠口時,**同步更新三處**,並重建 SPFILE。

核心心法

「報錯時要學會查看 Oracle 錯誤日誌裡面的信息,有時候報的錯誤並不是表面上的那樣,需要我們尋根問底才行。」

oradim.log、alert_SID.log、listener.log 是診斷啟動/連線問題的鐵三角,善用它們比盲目重裝快百倍。

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