oracle 11g 监听无法启动
环境:windows 2008R2 64
Oracle软件:Oracle11.2.0.1 32位
现象:
数据库无法启动
监听启动报错
经检查数据库 ORACLE_SID=orcl
ORACLE_BASE=D:\app\administrator
ORACLE_HOME=D:\app\Administrator\product\11.2.0\dbhome_1
在 cmd 窗口重新设置环境启动数据库,OK ,没有问题,数据库成功启动了。
好了,开始启动监听,心想这么简单解决了!搞定!oh!oh!oh! NO!NO! NO!
监听报错了,总是提示说找不到文件,找不到文件应该是环境设置问题,不对啊,我设置了环境啊,对了,还有一个TNS的环境一起设置上吧。
于是 set TNS_ADMIN=D:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\admin
OK了吧!?
oh!NO! 还是一样的报错。检查监听日志如下:
数据库监听日志报错如下:
Message 279 not found; No message file for product=NETWORK, facility=NL
Message 509 not found; No message file for product=NETWORK, facility=NL
Message 510 not found; No message file for product=NETWORK, facility=NL
从报错看还是环境设置问题啊! 检查注册表吧,也正常基本正常。重建监听吧!
新打开cmd窗口 开始netca 顺利成功,感觉不太正常的是时间有点儿长,而且没有启动,不对,还是有问题,重启一下监听报错很固执!
没有头绪了,这时领导来电话催了,什么问题?我怎么回答?没查出来?先往32位上推吧,跟领导说备份数据库重装64位的。幸好数据量不大。就这么干?不甘心!让别人先去准备吧,我这边重整思路。
还是环境问题,最影响环境的就是之前安装过没有成功后卸载了,查一下环境吧。在新cmd窗口查看环境设置 set ORACLE_SID 正常 ,set ORACLE_BASE 正常, set ORACLE_HOME 不正常,好了 ,看到问题了,这里ORACLE_HOME 读取的是 D:\app\Administrator\product\11.2.0\dbhome_1\bin
这是谁干的!
重新检查注册表,搜索 ORACLE_HOME ,果然,有两个值是 D:\app\Administrator\product\11.2.0\dbhome_1\bin ,修改这两个值为正确值,并添加用户环境变量,设置好了,重新打开cmd窗口重建监听,这次OK了,监听成功启动。
总结:
还是检查不够仔细!我的错!
怀疑之前有人安装或一边软件,出了问题,然后卸载了重装的。卸载的时候没有清理干净注册表。
建议:
在64为系统中最后选择安装64为的数据库软件。
Oracle卸载的时候使用自动的卸载程序deinstall,在ORACLE_HOME目录下的deinstall 目录下执行 deinstall 命令,或者使用第7个安装包(Oracle11.2 64 位是第7个包,Oracle 11.2 32位的是第6个包)中的deinstall程序卸载。