Bootstrap

ORA-12537 TNS:链接关闭 问题分析

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都被重新创建了

;