数据库服务器文件丢失导致tns关闭,ORA-12537:TNS:连接关闭 和 TNS-12547: TNS: 丢失连接...

本帖最后由 change_my_life 于 2013-11-1 13:09 编辑

今天有个朋友出现了这么一个情况,在使用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:35Copyright (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 2013Copyright (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 serviceNAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

service_names                        string      RHYS

SQL>

正常

3)在客户端使用tnsping:

C:\Users\Administrator>tnsping rhysTNS Ping Utility for 32-bit Windows: Version 11.2.0.1.0 - Production on 01-11月-

2013 11:10:05Copyright (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]$

lsnrctlLSNRCTL for Linux: Version 11.2.0.4.0 - Production on 01-NOV-2013 11:22:57Copyright (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:14Copyright (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>

问题得到解决。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
ora-12547: tns: 丢失连接Oracle数据库的一个错误代码,表示客户端和数据库服务器之间的连接已经断开。 这个错误通常出现在以下几种情况下: 1. 网络连接问题:可能是客户端与数据库服务器之间的网络连接不稳定或中断,导致连接丢失。可以尝试重新建立连接,或者检查网络设置和配置。 2. 数据库服务器问题:可能是数据库服务器出现了故障或异常,导致连接丢失。可以尝试重新启动数据库服务器,或者联系数据库管理员解决问题。 3. 客户端配置问题:可能是客户端的配置文件或设置有误,导致连接无法建立或保持。可以检查客户端的配置文件(如tnsnames.ora)和网络设置,确保配置正确。 为了解决这个问题,可以采取以下措施: 1. 检查网络连接:确保客户端与数据库服务器之间的网络连接正常,并且没有任何网络问题。 2. 重新建立连接:尝试重新建立连接,可以重新启动客户端,或者重新连接数据库服务器。 3. 检查配置文件:检查客户端的配置文件,如tnsnames.ora和listener.ora,确保配置正确,并且与数据库服务器的设置一致。 4. 联系数据库管理员:如果问题仍然存在,可以联系数据库管理员寻求帮助,他们可以检查数据库服务器的状态和配置,以解决连接问题。 总之,ora-12547: tns: 丢失连接是一个常见的Oracle数据库错误,可能由于网络连接问题、数据库服务器问题或客户端配置问题导致。通过检查网络连接、重新建立连接和检查配置文件等方法,可以解决这个问题。如果问题仍然存在,可以联系数据库管理员寻求进一步的帮助。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值