|
环境
1.两台windows server 2008的操作系统,有域环境
2.数据库版本是11.2.0.4
遇到问题
1.从客户端使用sqlplus xxx/ssss@yyy 的方式连接数据库,第一次连数据库时很慢,基本上要几十秒才能连接到数据库,接下几次连接很正常,但过会儿再连接数据库 又变慢了
2.数据库的日志文件中,有大量的WARNING: inbound connection timed out (ORA-3136) 错误信息
[size=14.6667px]排除过程
[size=14.6667px]1. 百度查了这个ora-3136的错误,根据网上查找的资料,把数据库服务的监听添加了如下参数
LSNRCTL> set inbound_connect_timeout 0
[size=14.6667px] 并保存,此时,数据库中不在报ora-3136的错误了,但是,从客户端连接到oracle数据库服务器还是存在很慢的问题
[size=14.6667px]2.客户端连接数据库服务时,数据库的那台主机的硬件负载都不高,
[size=14.6667px]3.服务器的监听文件和客户端的tnsname.ora中的主机地址都是使用ip地址
[size=14.6667px]4.我在服务器上使用sqlplus xxx/ssss@yyy尝试连接多次,速度正常,感觉服务器端没问题
[size=14.6667px]5.从客户端ping服务器的监听地址,没有丢包现像
[size=14.6667px]6.在客户端使用tnsping测试到服务器的解析也很快,毫秒以内
[size=14.6667px]7.通过5和6的测试,感觉客户端到服务器的网络是正常的
[size=14.6667px]8.继续查百度,巧了,发现这篇文章和我的情况一下,http://blog.csdn.net/jaray/article/details/36008871
[size=14.6667px]后来根据这个文章上的方法,修改了服务器上的sqlnet.ora中的SQLNET.AUTHENTICATION_SERVICES的值为none
9.再次使用sqlplus 测试从客户端测试到服务端的连接,速度正常,几秒内连接成功
10, 尝试把那个值再改成NTS,故障又再次出现
所以我有以下疑问
SQLNET.AUTHENTICATION_SERVICES这个参数的值
在windows中,可以有以下设置
NTS 是启用操作系统级别验证
nono 是启用数据库验证
我使用sqlplus xxx/ssss@yyy 这种方式登陆数据库,本身就应该采用数据库验证方式,
这样理解对吗?
所以我明白为什么在改了这个参数值为nono后,在客户端使用sqlplus xxx/ssss@yyy 连接速度就正常了。
这个会跟域环境有关吗?
[size=14.6667px]
|
|