【Oracle错误集锦】:ORA-00119 & ORA-00132
2015-07-02 16:41
633 查看
有时候老天就是爱和你开玩笑,昨天好不容易配置好Oracle,能够用PL/SQL正常登录使用,今天突然就不行了。并且错误十分诡异,没有提示什么错误代码。输入用户名密码,点击登录后PL/SQL没有反映,直接卡死。
我就郁闷了,都不给提示怎么解决问题呢。突然想到Oracle肯定会有记录日志的地方。去查看一下应该会有惊喜。
Oracle日志位置:D:\app\NiuNiu\product\11.2.0\dbhome_1\database\oradim.log
果然发现了两个错误:
Tue Jun 23 15:32:41 2015
D:\app\NiuNiu\product\11.2.0\dbhome_1\bin\oradim.exe -startup -sid drp -usrpwd * -log oradim.log -nocheck 0
Tue Jun 23 15:32:48 2015
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name ‘LISTENER_DRP’
如日志显示的这两个错误:ORA-00119和ORA-00132,可能是因为这两个错误才导致PL/SQL不能正常登录。找到错误根源就好说了,解决这两个问题即可:
方案一:查看tnsname.ora文件,是否有这段字符串;没有的话添加即按照实际情况即可。
其中DRP为你的数据库sid,host为主机名。
方案二:tnsname.ora文件没有错误的情况下,也有可能出现这个问题,只能采取方案二了。
网上找了很多资料,主要意思是先用spfile产生pfile,再修改local_listener的参数,再重新产生spfile文件,步骤如下:
1、通过spfile复制一份pfile参数文件(注意:oracle中的pfile指的就是init.ora文件,例如下面命令创建的pfile文件就是“INITdrp.ORA”;spfile文件就是SPFILEDRP.ORA)
2、修改pfile参数文件(也即修改init.ora文件,即本文的INITdrp.ORA文件)
经过第一步以后,在$ORACLE_HOME/database目录会生成文件init.ora,由于我的oracle实例名为drp,所以我的pfile文件为INITdrp.ORA。用记事本打开该文件,找到local_listener这一行,然后将其值修改为:
其中的your_hostname为你的主机名。
3、重新产生spfile文件SPFILEDRP.ORA
4、使用startup命令,重新启动数据库即可。
整个流程如图所示:
报错时要学会查看Oracle错误日志里面的信息,有时候报的错误并不是表面上的那样,需要我们寻根问底才行。
我就郁闷了,都不给提示怎么解决问题呢。突然想到Oracle肯定会有记录日志的地方。去查看一下应该会有惊喜。
Oracle日志位置:D:\app\NiuNiu\product\11.2.0\dbhome_1\database\oradim.log
果然发现了两个错误:
Tue Jun 23 15:32:41 2015
D:\app\NiuNiu\product\11.2.0\dbhome_1\bin\oradim.exe -startup -sid drp -usrpwd * -log oradim.log -nocheck 0
Tue Jun 23 15:32:48 2015
ORA-00119: invalid specification for system parameter LOCAL_LISTENER
ORA-00132: syntax error or unresolved network name ‘LISTENER_DRP’
如日志显示的这两个错误:ORA-00119和ORA-00132,可能是因为这两个错误才导致PL/SQL不能正常登录。找到错误根源就好说了,解决这两个问题即可:
方案一:查看tnsname.ora文件,是否有这段字符串;没有的话添加即按照实际情况即可。
LISTENER_DRP = (ADDRESS = (PROTOCOL = TCP)(HOST = Niu)(PORT = 1521))
其中DRP为你的数据库sid,host为主机名。
方案二:tnsname.ora文件没有错误的情况下,也有可能出现这个问题,只能采取方案二了。
网上找了很多资料,主要意思是先用spfile产生pfile,再修改local_listener的参数,再重新产生spfile文件,步骤如下:
1、通过spfile复制一份pfile参数文件(注意:oracle中的pfile指的就是init.ora文件,例如下面命令创建的pfile文件就是“INITdrp.ORA”;spfile文件就是SPFILEDRP.ORA)
SQL> create pfile from spfile='D:\app\NiuNiu\product\11.2.0\dbhome_1\database\SPFILEDRP.ORA';
2、修改pfile参数文件(也即修改init.ora文件,即本文的INITdrp.ORA文件)
经过第一步以后,在$ORACLE_HOME/database目录会生成文件init.ora,由于我的oracle实例名为drp,所以我的pfile文件为INITdrp.ORA。用记事本打开该文件,找到local_listener这一行,然后将其值修改为:
(ADDRESS_LIST=(Address=(Protocol=tcp) (Host=your_hostname)(Port=1521)))
其中的your_hostname为你的主机名。
3、重新产生spfile文件SPFILEDRP.ORA
SQL> create spfile from pfile='D:\app\NiuNiu\product\11.2.0\dbhome_1\database\INITdrp.ORA';
4、使用startup命令,重新启动数据库即可。
整个流程如图所示:
报错时要学会查看Oracle错误日志里面的信息,有时候报的错误并不是表面上的那样,需要我们寻根问底才行。
相关文章推荐
- OEM无法登陆原因与ORACLE用户密码过期和锁定的解决办法(附上系统用户默认密码)
- oracle分区表彻底删除的办法
- 九、oracle 事务
- Oracle中Hint深入理解
- oracle 在pl/sql能够手动修改数据
- 八、oracle 分页
- Oracle的日期比较以及处理
- oracle等待事件buffer exterminate
- Oracle技术支持是如何分析数据库性能问题的
- 七、oracle 表查询二
- oracle游标
- oracle的for update
- Oracle DUAL 表
- ORACLE查看表空间对象
- DBArtisan 连接oracle数据库 和sybase 数据库
- DBArtisan 连接oracle数据库 和sybase 数据库
- Oracle 取随机数
- 关于oracle数据库用户以normal登陆提示用户名或密码错误,但以sysdba登陆正常问题
- 解决oracle11g的ORA-12505问题
- sqlserver 类似oracle的rownum功能: row_number