逐步解决ORA-12541、ORA-01034、ORA-27101、ORA-00119、ORA00132

码农公社  210.net.cn   210是何含义?10月24日是程序员节,1024 = 210、210既 210 之意。

有一台Oracle 11G数据库连不上,报错:ORA-12541:TNS:无监听程序 

重启两个Oracle服务,也没解决。 

有文章说另一种可能是Oracle目录下listener.log日志文件过大(达到4G,据说这是oracle在windows系统下的bug)导致的。 

搜索找到listener.log,果然文件已经是4GB。  于是停止服务里面的Oracle监听服务,重命名listener.log做备份。 

启动Oracle监听服务,会自动生成一个新的listener.log。 

PLSQL连接数据库,这次却报了另一个错误:


ORA-01034:ORACLE not available 

ORA-27101:shared memory realm does not exist


1.jpg


我的解决过程如下:


数据库服务器cmd命令行中 

1、输入:  

sqlplus /nolog 

2、输入:  

conn /as sysdba 

3、输入:  

startup


这时报错: 

ora-00119:invalid specification for system parameter LOCAL_LISTENER 

ora-00132:syntax error or unresolved network name 'LISTENER_ORCL'


1.jpg


4、找到init.ora.1112015105811(1112015105811每台机器不一样),路径在  

D:applcadminorclpfileinit.ora.1112015105811 

先复制一份做备份,用记事本打开init.ora.1112015105811,找到下面行  

local_listener=LISTENER_ORCL 

把LISTENER_ORCL修改为tnsnames.ora中的ADDRESS_LIST的值,如下(HOST值根据实际修改)  

local_listener="(ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.1.100)(PORT = 1521))"


5、回到命令行窗口中,输入:  

create spfile from pfile = 'D:applcadminorclpfileinit.ora.1112015105811';


6、输入:  startup 

这次终于没报错了,提示:ORACLE例程已经启动。用PLSQL成功连接数据库。



评论