ORA-00119和ORA-00132错误

1. 错误描述
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'

这个错误在数据库服务启动时出现,如我的安装目录D:\app\orcl\product\12.1.0\dbhome_1\database\oradim.log文件里。

2. 初次尝试

根据http://jingyan.baidu.com/article/5552ef47c73eef518ffbc908.html的描述;应做如下几步:

1. 先看oracle的监听和oracle的服务是否都启动了。启动oracle监听:cmd命令行窗口下,输入lsnrctl start,回车即启动监听。
2. 查看oracle的sid叫什么,比如创建数据库的时候,实例名叫“orcl”,那么先手工设置一下oralce的sid,cmd命令窗口中,set ORACLE_SID=orcl
3. 再输入sqlplus  /nolog,回车。再输入 conn / as sysdba;回车
4. 再输入startup,回车.这步是启动oracle服务。如果startup启动被告知已经启动了,可以先输入shutdown immediate;等shutdown结束之后,再输入startup。

然后我就照做了:

C:\Users\uchoice>set ORACLE_SID=orcl

C:\Users\uchoice>echo %ORACLE_SID%
orcl

C:\Users\uchoice>sqlplus /nolog

SQL*Plus: Release 12.1.0.2.0 Production on 星期一 9月 12 18:35:10 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

SQL> conn / as sysdba
ERROR:
ORA-01017: invalid username/password; logon denied
###ORA-01017: invalid username/password;错误是我的sqlnet.ora文件里SQLNET.AUTHENTICATION_SERVICES= (NONE)引起的,应改为SQLNET.AUTHENTICATION_SERVICES= (NTS),具体原理未深究
SQL> conn sys as sysdba
输入口令:
已连接到空闲例程。
SQL> show parameter
ORA-01034: ORACLE not available
进程 ID: 0
会话 ID: 0 序列号: 0


SQL> startup mount
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name 'LISTENER_ORCL'
SQL> exit
已断开连接

其实我在命令行里执行了startup, startup mount; shutdown immediate;等命令,都是失败的,所以和这个网友遇到的情况不一样。

3. 再次尝试

然后看到这边博文,http://blog.chinaunix.net/uid-24612962-id-3189342.html, 我做了如下探究:

C:\Users\uchoice>sqlplus / as sysdba
###这里之所以可以登录成功,是因为我修改了sqlnet.ora文件。
SQL*Plus: Release 12.1.0.2.0 Production on 星期一 9月 12 19:13:25 2016

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> create pfile from spfile;
###在D:\app\orcl\product\12.1.0\dbhome_1\database目录下生成了INITorcl001.ORA文件,与已经存在地SPFILEORCL.ORA文件内容相似。

文件已创建。

SQL> startup nomount pfile='D:\app\orcl\product\12.1.0\dbhome_1\database\INITorcl.ORA'
####这一步执行失败,你们不必再试
SP2-0642: SQL*Plus 内部错误状态 2133, 上下文 3113:0:0
继续执行将不安全
ORA-03113: 通信通道的文件结尾
进程 ID: 0
会话 ID: 0 序列号: 0

SQL> create spfile from pfile;
###此命令重新生成了D:\app\orcl\product\12.1.0\dbhome_1\database\SPFILEORCL.ORA文件,
###需要把*.local_listener='LISTENER_ORCL'内容
修改为*.local_listener='(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=192.168.1.197)(Port=1521)))'

文件已创建。

SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 2550136832 bytes
Fixed Size                  3048872 bytes
Variable Size             671091288 bytes
Database Buffers         1862270976 bytes
Redo Buffers               13725696 bytes
数据库装载完毕。
数据库已经打开。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL>
SQL> startup;
ORACLE 例程已经启动。

Total System Global Area 2550136832 bytes
Fixed Size                  3048872 bytes
Variable Size             671091288 bytes
Database Buffers         1862270976 bytes
Redo Buffers               13725696 bytes
数据库装载完毕。
数据库已经打开。

我这次之所以没有按照原博文做,是因为我的oracle是12c的,我的spfileorcl.ora在database文件夹下,而不是dbs下。

4. 结果

然后我使用pl/sql developer重新连数据库时,我的c##test用户居然告诉我密码错误。但是我中途并没有改他的密码。不知为何。接着我只能sqlplus / as sysdba,alter user c##test identified by test;改密码。最后成功连接数据库。

转载于:https://my.oschina.net/u/200628/blog/746204

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值