ITPub博客

首页 > Linux操作系统 > Linux操作系统 > TNSPING 非常慢

TNSPING 非常慢

原创 Linux操作系统 作者:dla001 时间:2011-05-11 14:47:35 0 删除 编辑

环境:

redhat5   X64     11GR2_X64

无事安装了一个oracle,版本11.2.0.1.0。东西安装了很多回了,觉得不会出现任何事了,没想到还是有问题了。

使用

conn  / as sysdba 连接很快

conn hr/hr@tns 非常慢,要5分钟

查了很多资料,会有影响的地方有:

sqlnet.ora 参数(我的机器上没有这个文件)

listener.log过大(我的是新的,很小)

tnsping 很慢。 我试验了一下,本机tnsping慢的让人抓狂。多方查找资料,解决:资料如下,参考

http://blogs.oracle.com/longchun/2009/12/ebs_r121_for_linux.html

详细内容请看如下

故障现象:

- tnsping VIS 延时很长,不能忍受的地步

- 应用层面启动不成功

分析过程:

- 检查/etc/hosts, 把IP6的相关内容注释掉,因为根本没用到IP6

- ping localhost 很快

- ping hostname 很快,并且能够解析

- cd $ORACLE_HOME/nework/context_name/admin/tnsnames.ora,sqlnet.ora,lisenter.ora 文件检查,试图把hostname 换成IP,结果还是不理想

- telent hostname 1521 速度很快

- server 上sqlplus "/as sysdba"速度很快

- server sqlplus system/oracle@VIS速度很慢

%100 确定监听出了问题

- tracerouter hostname 就一跳 ,,应该没问题

- metlink上查找相关文件,怀疑有BUG存在..

- 找到类似的 What was changed between the two is the way Oracle resolves hostnames to IPs, more specifically the system call used to do that.

Oracle 11g use now getaddrinfo() while 10g used gethostbyname().

These system functions requires different configuration in /etc/nsswitch.conf.

gethostbyname() require the use of keyword "hosts" while getaddrinfo() the use the keyword "ipnodes"


This happens even if Name Server Switch configuration (nsswitch) specifies the hosts file prior to dns lookups:

/etc/nsswitch.conf
hosts: files [NOTFOUND=continue] dns
or only:
hosts: files 这样的DOC..

- 看来是因为Server 本身的DNS起作用了,DNS一起作用,hosts就有问题了

- /etc/resolv.conf

;generated by /usr/sbin/oraclevm-template
#search hostname

#options timeout:15
#options timeout:15
#nameserver hostname

全去掉,或者干脆把resolv.conf move 掉

- 最后把/etc/sysconfig/network中IP6相关的东西都去掉了


再测试,就OK了

我的是修改了/etc/resolv.conf后OK。 /etc/sysconfig/network我也做了文中提到的修改。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12807983/viewspace-695003/,如需转载,请注明出处,否则将追究法律责任。

下一篇: REDO LOG
请登录后发表评论 登录
全部评论

注册时间:2011-04-28

  • 博文量
    40
  • 访问量
    48918