今天在啟動服務器上的ORACLE時遇到如下錯誤:
SQL> startup;
ORA-00119: invalid specification for system
parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved
network name 'LISTENER_ORCL'
然后,在網上找了一些資料,解決了此問題。
解決的方式如下(這是網上的一位達人解決方案,我照他的步驟順利解決,不過決定還是做一個筆記):
第一步:復制一份pfile參數文件(注意:oracle中的pfile指的就是init<sid>.ora文件)
$ ./sqlplus / as sysdba;
SQL> create pfile from spfile='/opt/ora11/oracle/dbs/spfilesouask.ora';
第二步:修改pfile參數文件(也即修改init<sid>.ora文件)
經過第一步以后,你就會在$ORACLE_HOME/dbs目錄下發現有這么一個文件init<sid>.ora,這就是你第一步創建
的文件。由于我的oracle實例名為orcl,所以我的pfile文件為initorcl.ora。
用gedit打開,找到local_listener這一行,然后將其值修改為:
(ADDRESS_LIST=(Address=(Protocol=tcp)
(Host=your_hostname)(Port=1521)))
其中的your_hostname為你的主機名,其實導致ORA-00119和ORA-00132錯
誤的原因就很可能是你修改了你的hostname,但是我看了一下我的tnsname.ora文件里面的那個LISTENER_ORCL(可能你不是這個
名字)和后面修改的your_hostname一致,我做的只是將tnsname.ora文件中的(ADDRESS_LIST=(Address=
(Protocol=tcp)
(Host=your_hostname)(Port=1521)))復制到pfile文件的“local_listener=”后面,然后就順利啟動了
數據庫,我也不知道為什么直接用*.local_listener='LISTENER_ORCL'就找不到,而一定要*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp)
(Host=your_hostname)(Port=1521)))'才可以,這個問題以后研究一下。
以下是我的一個修改樣例:
修改之前可能是這樣
*.local_listener='LISTENER_ORCL'
修改后的值大概就是這個樣子了
*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp)
(Host=your_hostname)(Port=1521)))'
然后保存退出
第三步:以pfile創建spfile
使用以下命令創建spfile
SQL> create spfile from pfile='/opt/ora11/oracle/dbs/initsouask.ora';
第四步:啟動數據庫
SQL> startup;
posted on 2010-06-29 13:41
藍劍 閱讀(1348)
評論(0) 編輯 收藏 所屬分類:
Linux 、
Oracle