你的位置:首页 > 数据库

[数据库](转载) ORA


今天在远程客户端配置EBS数据库连接的时候发生“ORA-12537:TNS连接已关闭”的错误。进入服务器运行如下命令:$tnsping VIS

这里VIS如果定义服务名,可以写成 $ tnsping 192.188.X.X:1521/VIS
$ tnsping VIS
TNS Ping Utility for IBM/AIX RISC System/6000: Version 9.2.0.6.0 - Production on 14-SEP-2007 04:41:47
Copyright (c) 1997 Oracle Corporation.  All rights reserved.
Used parameter files:
/u01/oravis/visdb/9.2.0/network/admin/VIS_erptest/sqlnet_ifile.ora

Used TNSNAMES adapter to resolve the alias
Attempting to contact (DESCRIPTION= (ADDRESS=(PROTOCOL=tcp)(HOST=ERPTEST.domain)(PORT=1522)) (CONNECT_DATA= (SID=VIS)))
OK (0 msec)
 
//网络服务名能正常解析。
 
$ sqlplus /nolog
SQL*Plus: Release 9.2.0.6.0 - Production on Fri Sep 14 04:44:44 2007
Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
SQL> conn scott/tiger@VIS
Connected.
 
//也没问题,说明监听器是正常的。在EBS中监听最好用脚本起,如果用lsnrctl start启,监听端口为1521,这样EBS APPS TIER的内部并发管理器会连接不上数据库。
 
服务器上都是正常的,为什么客户端不行呢?难道做了什么限制?继续往下。
查看sqlnet.ora文件:
$ cat sqlnet.ora
###############################################################
#
# This file is automatically generated by AutoConfig.  It will be read and
# overwritten.  If you were instructed to edit this file, or if you are not
# able to use the settings created by AutoConfig, refer to Metalink document
# 165195.1 for assistance.
#
#$Header: NetServiceHandler.java 115.41 2005/05/23 06:43:44 psaddi ship $
#
###############################################################
NAMES.DIRECTORY_PATH=(TNSNAMES, ONAMES, HOSTNAME)
SQLNET.EXPIRE_TIME= 10
tcp.validnode_checking = yes
tcp.invited_nodes=(ERPTEST.domain)
 
到这问题差不多看出来了。注释掉最后两行。重新启动监听器,OK!问题解决。
重启监听:$ORACLE_HOME/bin/lsnrctl stop
               $ORACLE_HOME/bin/lsnrctl start

 

具体的情况:找了随意的一台电脑,安装Oracle客户端,可以通过客户端的sqlplus连接数据库;但是问题电脑,装了Oracle客户端后,仍有 ORA-12537:TNS连接已关闭 问题。后来重启问题电脑的时候,发现 X网的可信边界安全网关 阻止我使用非该网的IP地址访问数据库。当我关掉该网关后,可正常访问。打开后,扔出现 ORA-12537:TNS连接已关闭 问题。