Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1124188
  • 博文数量: 159
  • 博客积分: 3063
  • 博客等级: 中校
  • 技术积分: 2703
  • 用 户 组: 普通用户
  • 注册时间: 2012-04-01 01:51
文章分类

全部博文(159)

文章存档

2013年(48)

2012年(111)

分类: Oracle

2012-04-26 00:51:20

今天在启动服务器上的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.ora文件)

$ ./sqlplus / as sysdba;

SQL> create pfile from spfile='/u01/oracle/product/10.2.0/db_1/dbs/spfileorcl.ora';

 

第二步:修改pfile参数文件(也即修改init.ora文件)

经过第一步以后,你就会在$ORACLE_HOME/dbs目录下发现有这么一个文件init.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='/u01/oracle/product/10.2.0/db_1/dbs/initorcl.ora';

 

第四步:启动数据库

SQL>  startup;

   

ORACLE instance started.

Total System Global Area ***  bytes
Fixed Size *** bytes
Variable Size *** bytes
Database Buffers *** bytes
Redo Buffers *** bytes
Database mounted.
Database opened.

阅读(28505) | 评论(2) | 转发(1) |
给主人留下些什么吧!~~

aaron82192012-04-26 21:31:47

重返人生2012-04-26 18:25:16

很好的文章,新人表示学习到了,多谢啊