当前位置:操作系统 > Unix/Linux >>

ORA-12537:TNS:连接关闭和TNS-12547: TNS: 丢失连接解决

ORA-12537:TNS:连接关闭和TNS-12547: TNS: 丢失连接解决
 
客户端连接oracle无服务器提示ORA-12537:TNS:连接关闭
  今天有个朋友出现了这么一个情况,在使用pl/sql连接数据库的时候提示ORA-12537:TNS:连接关闭。
查看过程(为了保密,特模拟过程):
查看过程:
1)查看客户端tnsname.ora文件信息如下:
# tnsnames.ora Network Configuration File: E:\softsetup\oracle_client\oracle_base\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

RHYS =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.101)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = RHYS)
    )
  )
没有问题
2)查看服务器监听状态
[oracle@oracle-one ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 01-NOV-2013 11:19:35
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle-one)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.4.0 - Production
Start Date                01-NOV-2013 11:08:41
Uptime                    0 days 0 hr. 10 min. 54 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/app/oracle/diag/tnslsnr/oracle-one/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=oracle-one)(PORT=1521)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))
Services Summary...
Service "RHYS" has 1 instance(s).
  Instance "RHYS", status READY, has 1 handler(s) for this service...
Service "RHYSXDB" has 1 instance(s).
  Instance "RHYS", status READY, has 1 handler(s) for this service...
The command completed successfully
[oracle@oracle-one ~]$ sqlplus / as sysdba
SQL*Plus: Release 11.2.0.4.0 Production on Fri Nov 1 11:19:38 2013
Copyright (c) 1982, 2013, Oracle.  All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL> show parameter service
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
service_names                        string      RHYS
SQL>
正常
3)在客户端使用tnsping:
C:\Users\Administrator>tnsping rhys
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 01-11月-
2013 11:10:05
Copyright (c) 1997, 2010, Oracle.  All rights reserved.
已使用的参数文件:
E:\softsetup\oracle_client\oracle_base\network\admin\sqlnet.ora

已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.1
68.56.101)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RHYS)))
TNS-12547: TNS: 丢失连接
C:\Users\Administrator>

4)在服务器查看sqlnet.ora文件内容如下:
tcp.validnode_checking=yes
tcp.invited_nodes=(192.168.56.101)
可以看出,正是由于存在tcp.validnode_checking=yes才去检查tcp.invited_nodes定义的节点,将客户端ip地址192.168.56.1加入该文件中即可。

tcp.validnode_checking=yes
tcp.invited_nodes=(192.168.56.101,192.168.56.1)
"sqlnet.ora" 1118L, 32887C written                                                                                                                   
[oracle@oracle-one admin]$
由于操作的是正在运行的服务器,因此不能重启该监听,但是reload可以实现。
[oracle@oracle-one admin]$ lsnrctl
LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 01-NOV-2013 11:22:57
Copyright (c) 1991, 2013, Oracle.  All rights reserved.
Welcome to LSNRCTL, type "help" for information.
LSNRCTL> help
The following operations are available
An asterisk (*) denotes a modifier or extended command:
start               stop                status              
services            version             reload              
save_config         trace               spawn               
change_password     quit                exit                
set*                show*              
LSNRCTL> reload
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=oracle-one)(PORT=1521)))
The command completed successfully
LSNRCTL> exit
5)在客户端测试:
C:\Users\Administrator>tnsping rhys
TNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 01-11月-
2013 11:23:14
Copyright (c) 1997, 2010, Oracle.  All rights reserved.
已使用的参数文件:
E:\softsetup\oracle_client\oracle_base\network\admin\sqlnet.ora

已使用 TNSNAMES 适配器来解析别名
尝试连接 (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.1
68.56.101)(PORT = 1521))) (CONNECT_DATA = (SERVICE_NAME = RHYS)))
OK (10 毫秒)
C:\Users\Administrator>

 

问题得到解决。
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,