ORA-12537主要是ORALCE 监听问题,今天帮同事处理问题时,他问道一种情况,开始连接很正常,后续多次出现ORA-12537问题
简单整理了下
一般请况下
1-检查数据库服务器是否没有启动监听
LINUX 常见可能是重启数据库后没有启动监听
[oracle@localhost ~]$ sqlplus /nolog
SQL> conn /as sysdba
SQL> shutdown immediate 关闭数据库
SQL> startup 数据库启动
SQL> exit
[oracle@localhost ~]$ lsnrctl start 启用监听
WINDOWS 常见是没有启动服务
计算机邮件 - 管理 - 服务和应用程序 - 服务 ,然后开启监听
2-检查客户端配置的监听文件tnsnames.ora是否正确,
oracle\product\10.2.0\db_1\network\ADMIN\tnsnames.ora关注IP,端口,SID
这里要注意的是服务名前面不要有空格,例如ORCL_32.21之前
ORCL_32.21 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.32.21)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = ORCL)
)
)
3- listener.log文件过大引起
第三种情况,就是同事之前遇到的,开始可以时,后续是不是的提示ORA-12537,问题是由于listener.log文件过大引起,
listener.log已经有好几个G,引起写入日志过大时引起监听不工作, 清理掉listener.log文件问题可解决
下面是网上朋友提供的方法
摘自:listener.log太大的处理方法_ITPUB博客
Normal 0 0 2 false false false EN-US ZH-TW X-NONE处理方式
1.删除...\product\10.2.0\db_1\NETWORK\log下listener.log(或重命名以备份),重启监听器
rename listener.log listener.old
lsnrctl stop
lsnrctl start
2.上一种方法会中断数据库的使用,为了最小化数据库中断时间,采用先关闭再开启listener日志功能的方法
lsnrctl set log_status off
rename listener.log listener.old
lsnrcl set log_status on
使用以上两种方法中的任意一种之后,listener.log都被重新创建了