联系:手机/微信(+86 17813235971) QQ(107644445)
标题:dns解析导致opiodr aborting process unknown ospid (7266) as a result of ORA-609类似错误
作者:惜分飞©版权所有[未经本人同意,不得以任何形式转载,否则有进一步追究法律责任的权利.]
数据库alert日志中出现大量类似opiodr aborting process unknown ospid (7266) as a result of ORA-609错误
Tue Oct 27 07:51:10 2015 opiodr aborting process unknown ospid (7266) as a result of ORA-609 Tue Oct 27 08:16:56 2015 opiodr aborting process unknown ospid (7660) as a result of ORA-609 Tue Oct 27 08:17:16 2015 opiodr aborting process unknown ospid (7666) as a result of ORA-609 Tue Oct 27 08:21:50 2015 opiodr aborting process unknown ospid (7725) as a result of ORA-609 Tue Oct 27 08:37:43 2015 opiodr aborting process unknown ospid (7940) as a result of ORA-609 Tue Oct 27 08:51:25 2015 opiodr aborting process unknown ospid (8126) as a result of ORA-609 Tue Oct 27 09:07:16 2015 opiodr aborting process unknown ospid (8359) as a result of ORA-609 Tue Oct 27 09:26:09 2015 opiodr aborting process unknown ospid (8600) as a result of ORA-609
测试tnsping
[oracle@Sql admin]$ tnsping orcl TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 28-OCT-2015 01:40:55 Copyright (c) 1997, 2009, Oracle. All rights reserved. Used parameter files: /opt/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.162)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.Sql.xifenfei.com))) OK (20120 msec) [oracle@Sql admin]$ tnsping orcl TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 28-OCT-2015 01:42:35 Copyright (c) 1997, 2009, Oracle. All rights reserved. Used parameter files: /opt/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.162)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.Sql.xifenfei.com))) OK (41600 msec)
hosts文件配置
[oracle@Sql admin]$ vi /etc/hosts 127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4 192.168.2.162 Sql.xifenfei.com ::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
同时测试lsnrctl start/stop/status都很慢,但是ping localhost非常快,证明问题在监听之上.search 关键字lsnrctl slow/tnsping slow关键字发现有相关文档:
Bug 8307164 : TNSPING 11G USING DNS AND NOT HOSTS FILE
Listener Startup or Connections Hang in 11g (Doc ID 803838.1)
11g: Remote Connections Take Very Long to Establish (Doc ID 856820.1)
通过这些文档,可以知道在oracle 10g中解析主机名使用gethostbyname()函数,11g中使用了使用getaddrinfo()函数.这个函数对于/etc/nsswitch.conf的调用和ethostbyname()不一样,从而出现此类问题.根据官方建议:
Linux hosts: files [NOTFOUND=continue] dns OR hosts:files/dns HPUX and Solaris ipnodes: files [NOTFOUND=continue] dns
本次解决方法
因为对于没有使用到dns服务器的数据库环境而言,没有必要配置这玩意,给自己埋雷,估计是当时安装yum之时没有清理掉
vi /etc/nsswitch.conf hosts: files nds -->hosts: files
再次测试tnsping,lsnrctl等命令,速度ok
[oracle@Sql"]$ tnsping orcl TNS Ping Utility for Linux: Version 11.2.0.1.0 - Production on 28-OCT-2015 01:58:30 Copyright (c) 1997, 2009, Oracle. All rights reserved. Used parameter files: /opt/oracle/product/11.2.0/db_1/network/admin/sqlnet.ora Used TNSNAMES adapter to resolve the alias Attempting to contact (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.162)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl.Sql.xifenfei.com))) OK (10 msec)
对于此类监听慢的问题,可以通过对client/server端trace进一步跟踪
TRACE_LEVEL_CLIENT = 16 TRACE_FILE_CLIENT = client/server TRACE_DIRECTORY_CLIENT = [any valid directory path] TRACE_TIMESTAMP_CLIENT = ON DIAG_ADR_ENABLED=off