RAC ORA-12170 ora-12535/tns-12535
现象:开发人员抱怨RAC数据库出现了时连得上时连不上的情况,用SQLPLUS一试,果然有这样的情况:
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
ERROR:
ORA-12170: TNS: 连接超时
警告: 您不再连接到 ORACLE。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> select instance_name from sys.v_$instance;
INSTANCE_NAME
----------------
rac1
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
ERROR:
ORA-12170: TNS: 连接超时
警告: 您不再连接到 ORACLE。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL> conn system/*******@bjyd
已连接。
SQL>
检查两个节点主机和网络,均未开启防火墙:
[oracle@BJYD01 trace]$ su -
[root@BJYD01 ~]# service iptables status
Table: filter
Chain INPUT (policy ACCEPT)
num target prot opt source destination
Chain FORWARD (policy ACCEPT)
num target prot opt source destination
Chain OUTPUT (policy ACCEPT)
num target prot opt source destination
[root@BJYD02 ~]# service iptables status
Firewall is stopped.
[root@BJYD02 ~]#
sqlnet开启16级别的trace:
Fatal NI connect error 12170.
VERSION INFORMATION:
TNS for 32-bit Windows: Version 10.2.0.1.0 - Production
Windows NT TCP/IP NT Protocol Adapter for 32-bit Windows: Version 10.2.0.1.0 - Production
Time: 10-7?? -2013 09:03:38
Tracing not turned on.
Tns error struct:
ns main err code: 12535
TNS-12535: TNS: 2ù×÷3?ê±
ns secondary err code: 12560
nt main err code: 505
TNS-00505: 2ù×÷3?ê±
nt secondary err code: 60
nt OS err code: 0
Client address: <unknown>
[10-7?? -2013 09:13:58:741] ntt2err: entry
[10-7?? -2013 09:13:58:741] ntt2err: soc 284 error - operation=1, ntresnt[0]=505, ntresnt[1]=60, ntresnt[2]=0
[10-7?? -2013 09:13:58:741] ntt2err: exit
[10-7?? -2013 09:13:58:841] nttcni: exit
[10-7?? -2013 09:13:58:841] nttcon: exit
[10-7?? -2013 09:13:58:841] nserror: entry
[10-7?? -2013 09:13:58:841] nserror: nsres: id=0, op=65, ns=12535, ns2=12560; nt[0]=505, nt[1]=60, nt[2]=0; ora[0]=0, ora[1]=0, ora[2]=0
分析:
通常说来,ORA-12535/TNS-12535意味着在client和server之间的通讯时存在超时现象,有以下几种原因:
1.client和server之间设置了防火墙(包括OS层面的和网络层面的)
2.网速较慢导致出现超时
3.网卡故障
4.无法将主机名解释为IP地址也会导致超时
已经知道可能的原因了,那么可以通过排除法进行判断:
1,4经过检查可以排除,
2,3都存在可能。
首先我假定2--是网速较慢导致timeout,所以我在在sqlnet.ora中设置
SQLNET.INBOUND_CONNECT_TIMEOUT=180
(180秒我们认为是一个足够大的时间了,在慢速网络中基本可以排除超时的情况)
但设置了这个参数之后,问题依旧,再加之经过网络工程师的检查,没发现网络有异常的现象。
所以,我认为基本可以排除原因2。
那么进一步推测,是原因3导致的吗?
1)我发现了偶尔从节点1到节点2(Public IP)SSH不通的现象:
[oracle@BJYD01 ~]$
[oracle@BJYD01 ~]$ ssh BJYD02
ssh: connect to host BJYD02 port 22: Connection timed out
[oracle@BJYD01 ~]$
[oracle@BJYD01 ~]$ ssh BJYD02
Last login: Thu Jul 11 17:10:49 2013 from BJYD01
[oracle@BJYD02 ~]$
但SSH Private IP没这个问题。
从节点2到节点1SSH无论Public IP还是Private IP都没问题。
2)ifconfig查看,发现节点2的Public IP所在的eth0网卡有较严重的drop包现象(该处未截屏记录下来),
其它网卡以及节点1上的2个网卡均正常。
怀疑eth0网卡问题,尝试通过换掉eth0网卡解决问题。
解决方法:
最终将节点2的eth0网卡换掉之后,问题成功解决。
推断根本原因可能是:
1.节点2的eth0网卡老化导致故障;
2.节点2的eth0网口松动。
RAC ORA-12170 ora-12535/tns-12535的更多相关文章
- ORACLE RAC 下非缺省端口监听配置(listener.ora tnsnames.ora)
不论是单实例还是RAC,对于非缺省端口下(1521)的监听器,pmon进程不会将service/instance注册到监听器,即不会实现动态注册.与单实例相同,RAC非缺省端口的监听器也是通过设置参数 ...
- Oracle 11gR2 RAC 数据库不能连接(ORA-12537: TNS:connection closed)
Oracle 11gR2 RAC 数据库不能连接(ORA-12537: TNS:connection closed)的解决 [oracle@rac01 ~]$ sqlplus /nolog SQL*P ...
- Oracle 11gR2 RAC 数据库不能连接(ORA-12537: TNS:connection closed)的解决
Oracle 11gR2 RAC 数据库不能连接(ORA-12537: TNS:connection closed)的解决 [oracle@rac01 ~]$ sqlplus /nolog S ...
- oracle的listener.ora sqlnet.ora tnsnames.ora三个文件的关联性
学习:http://www.cnblogs.com/william-lee/archive/2010/10/20/1856261.html 之前因为安装的是windows server 2008 r2 ...
- listener.ora/sqlnet.ora/tnsnames.ora配置文件详解
oracle网络配置 三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下. 英文说明: The ...
- Oracle RAC客户端tnsnames.ora相关配置及测试
1.Oracle RAC服务端/etc/hosts部分内容如下 2.查看服务端的local_listener和remote_listener参数 3.客户端tnsnames.ora配置参考 3.1 1 ...
- ORACLE RAC 监听配置 (listener.ora tnsnames.ora)
Oracle RAC 监听器的配置与单实例稍有不同,但原理和实现方法基本上是相同的.在Oracle中 tns进程用于为指定网络地址上的一个或多个Oracle 实例提供服务注册,并响应来自客户端对该服务 ...
- oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件
总结: 1 .三个配置文件都是放在$ORACLE_HOME\network\admin目录下. 2 .sqlnet.ora确定解析方式 3 .listener.ora上设SID_NAME,通常用于JD ...
- oracle的sqlnet.ora , tnsnames.ora , Listener.ora 文件的作用(转)
oracle网络配置三个配置文件 listener.ora.sqlnet.ora.tnsnames.ora ,都是放在$ORACLE_HOME/network/admin目录下.1. sqlnet.o ...
- oracle错误(ORA:12154 ORA:01034 和 ORA:27101 ORA-18008 ORA-01081)
按照正常操作流程,启动项目,发现项目报错,原因是连接不上oracle数据库, PLSQL连接时报错,错误码 ORA:12154 无法解析指定的连接标识符 第一次,遇到这个错误,在网上找了资料都是需要 ...
随机推荐
- poj2196---Specialized Four-Digit Numbers
#include <stdio.h> #include <stdlib.h> int main() { int i,sum,sumOfH,sumOfd,tmp1,tmp2,tm ...
- [置顶] 北漂的大三IT男(暂完)
今天是2013年8月9日,是我待在北京的最后一个晚上,今天我已经正式向公司提出辞职了,虽然公司已经答应从下个月起涨部分工资,但是我还是坚决的离开了,回想当时进公司的想法----------干了一个月后 ...
- [置顶] Android系统移植与调试之------->如何修改Android设备状态条上音量加减键在横竖屏的时候的切换与显示
这两天由于一个客户的要求,将MID竖屏时候的状态条上的音量键去掉.所以尝试修改了一下,成功了,分享一下经验. 先看一下修改后的效果图,如下所示 . 横屏的时候:有音量加减键 竖屏的时候:音量加减键被去 ...
- Boost.Asio c++ 网络编程翻译(14)
保持活动 假如,你须要做以下的操作: io_service service; ip::tcp::socket sock(service); char buff[512]; ... read(sock, ...
- Android中的数据存储
Android中的数据存储主要分为三种基本方法: 1.利用shared preferences存储一些轻量级的键值对数据. 2.传统文件系统. 3.利用SQLite的数据库管理系统. 对SharedP ...
- Android 教你打造炫酷的ViewPagerIndicator 不仅仅是高仿MIUI
1.概述 哈,今天给大家带来一个ViewPagerIndicator的制作,相信大家在做tabIndicator的时候,大多数人都用过 TabPageIndicator,并且很多知名APP都使用过这个 ...
- Knuth-Morris-Pratt Algorithm
Today , 第一次学习KMP Algorithm,其中好多地方还是不能理解的透彻,本文将进一步对 KMP Algorithm 进行学习,搞清楚其中的思想…… First , KMP Algorit ...
- VC++学习之GDI概述
VC++学习之GDI概述 图形设备接口(GDI)是一个可执行程序,它接受Windows应用程序的绘图请求(表现为GDI函数调用),并将它们传给相应的设备驱动程序,完成特定于硬件的输出,象打印机输出和屏 ...
- Redis Sentinel的Redis集群(主从&Sharding)高可用方案
在不使用redis3.0之后版本的情况下,对于redis服务端一般是采用Sentinel哨兵模式,也就是一主多备的方式. 这里,先抛出三个问题, 问题1:单节点宕机数据丢失?问题2:多节点(节点间没有 ...
- 从零开始PHP学习 - 第三天
写这个系列文章主要是为了督促自己 每天定时 定量消化一些知识! 同时也为了让需要的人 学到点啥~! 本人技术实在不高!本文中可能会有错误!希望大家发现后能提醒一下我和大家! 偷偷说下 本教程最后的目 ...