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>
问题得到解决。