一次处理ORA-07445的历险记(转)

ORA-07445通常是Oracle调用操作系统的资源出错时出现的[@more@]

事前没有任何征兆,下午5点左右某个关键应用的17台oracle数据库上的数据库实例陆续宕机,赶紧查看alert_log,发现此文件中记录了大量的0RA-07445错误代码:

ORA-07445: exception encountered: core dump [] [] [] [] [] []

 

也顾不得查找root cause,赶紧重新启动数据库,但更糟糕的是数据库实例居然启动失败,连续多次startup才能偶尔启动成功一次,而且很快又宕机,Listener也经常启动失败。第一感觉是服务器中了病毒,应用的环境是:oracle 10.2.0.1 和windows 2003 server。因为ORA-07445通常是Oracle调用操作系统的资源出错时出现的。查看了一下oracle的参数,吃惊的发现数据库居然运行在共享模式,赶紧把它们全部改到专用模式,相关语句如下:

alter system set dispatchers=' ;

alter system set shared_servers=0;

再重新启动数据库,已经可以启动了,但偶尔实例还会宕,不过马上重新启动就行了,就这样隔一会儿就重启一下数据库。终于熬到了下班,周围的电话也安静了下来,可以开始静下心来找root cause了。

从前面的症状分析,一个明显的感觉是OS出了问题,Oracle数据库在调用windows 2003 server的资源时出错,

因为专用模式减少了Oracle和OS之间的交互,所以减少了宕机的现象发生。

 

再到metalink上查找类似问题,找到了两个文档Doc ID: 422471.1和Doc ID: 405904.1。经过分析后,采取了实施了以下两个变更:

变更一:为减少和数据库和OS的交到,封锁OS登录数据库的认证:

在sqlnet.ora中,注释了下面的语句:

# SQLNET.AUTHENTICATION_SERVICES = (NTS)

变更二:为加快数据库对登录会话的响应,修改下面监听的参数

Sqlnet.ora中增加下面的语句

SQLNET.INBOUND_CONNECT_TIMEOUT = 0 ---默认是60秒

在listener.ora中增加

INBOUND_CONNECT_TIMEOUT_LISTENER =0 ---默认是60秒

 

有以下特点:

  • 有15台机器在第一天几乎同一个时间点都出现了svchost.exe的报错,以后再出现svchost.exe的报错也基本是多台机器同时产生的。
  • 和oracle的alert_log结合分析,在svchost.exe出错不久,数据库出现ora-07445的错误接着就宕机。
  • 错误模块 kernel32.dll,错误地址 0x0010568f。

在windows的下面两个网页中可以找到对这个漏洞的说明和解决办法。

http://www.microsoft.com/china/technet/security/bulletin/MS08-067.mspx

http://support.microsoft.com/kb/958644/zh-cn

经过分析,极有可能是 W32.downadup.B型蠕虫病毒,需要打上KB958644的补丁,打卡补丁后问题果然解决。

总结:内网某台机器中了病毒,不断地攻击同一网段的windows系统的svchost进程,造成Oracle宕机,通过调整Oracle的参数和给windows打补丁后解决。

 

参考文档:

Oracle metalink  Doc ID: 422471.1和Doc ID: 405904.1

 

Windows:

http://www.microsoft.com/china/technet/security/bulletin/MS08-067.mspx

http://support.microsoft.com/kb/958644/zh-cn

 

http://blog.itpub.net/7695891/viewspace-1040157/

 

 

 

时间: 2024-08-03 03:13:57

一次处理ORA-07445的历险记(转)的相关文章

Oracle ORA 07445 evaopn2()+128错误问题的解决方案_oracle

问题描述 Plsql developer执行一段sql报错: 经查alert log详细报错信息为: ORA-07445: exception encountered: core dump [evaopn2()+128] [SIGSEGV] [Address not mapped to object] [0x000000000] [] [] 数据库版本 10.2.0.4.0 问题原因 复杂视图合并问题导致的oracle bug 解决方法 1.修改隐藏参数: alter system set "_

ORA-07445错误解析

今天发现数据库里的cdump目录下产生了一对的CORE文件. 查看alert日志发现都是 -- Wed Oct 12 09:58:51 2011 Restarting dead background process CJQ0 Wed Oct 12 09:58:52 2011 CJQ0 started with pid=43, OS id=5247 Exception [type: SIGSEGV, Address not mapped to object] [ADDR:0x130000001E]

ORA FAQ 性能调整系列之——Oracle 9与Oracle 8中CPU

oracle|性能 What is the difference between cpu_costing in Oracle 9 and the old costing of Oracle 8 ?Oracle 9与Oracle 8中CPU_COSTING有什么变化? Author's name: Jonathan LewisAuthor's Email: Jonathan@jlcomp.demon.co.ukDate written: 15th Dec 2002 Oracle version(s

ORA FAQ 性能调整系列之——当索引第一列由序列产生,一个逆序索引有什么用?

索引|性能 ORA FAQ 性能调整系列之--The Oracle (tm) Users' Co-Operative FAQWhy would a reverse index be useful when the leading column of the index is generated from a sequence ?当索引第一列由序列产生,一个逆序索引有什么用?--------------------------------------------------------------

监听中sqlnet.ora有什么作用

sqlnet.ora最常用的两个功能是: 客户端起作用==连接方式 用于指定客户端的名称解析查询的命名方法的顺序.==>> NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname) 服务端与客户端同时起作用==认证方式==>> SQLNET.AUTHENTICATION_SERVICES sqlnet.ora内容作用详见官方文档:http://docs.oracle.com/cd/B19306_01/network.102/b14213/s

Oracle TNSNAMES.ORA配置

在安装目录下,如:E:\Oracle\Ora81\network\ADMIN下用写字板或记事本打开TNSNAME.ORA文件,文件内容大概如下: TEST.SOFTONE.COM = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = zcb_8115)(PORT = 1521)) ) (CONNECT_DATA = (SERVICE_NAME = test) ) ) 蓝色部分为安装时录入的信息. 如果该文件没有配置

Oracle 07445错误的解决方法

错误现象: 1.alert日志出现07445错误 Wed Apr 28 18:13:38 2010 Errors in file /home/oracle/admin/port/udump/port1_ora_1032504.trc: ORA-07445: exception encountered: core dump [] [] [] [] [] [] 2.查port1_ora_1032504.trc 发现是执行某一SQL查询导致,而且每次执行必出该错误. 且有错误:ORA-07445: 出

浅析如何在tnsnames.ora中配置监听

以下是对如何在tnsnames.ora中配置监听进行了详细的分析介绍,需要的朋友可以过来参考下   tnsnames.ora所在位置:D:Installedoracleproduct11.1.0db_1NETWORKADMINtnsnames.ora也就是说在product中 只有配置了监听之后才可以登录到数据库中 复制代码 代码如下: TOTO =   (DESCRIPTION =     (ADDRESS = (PROTOCOL = TCP)(HOST = 这里是IP地址)(PORT = 1

监听中sqlnet.ora的作用

  sqlnet.ora最常用的两个功能是: 客户端起作用==连接方式 用于指定客户端的名称解析查询的命名方法的顺序.==>> NAMES.DIRECTORY_PATH=(tnsnames, onames, hostname) 服务端与客户端同时起作用==认证方式==>> SQLNET.AUTHENTICATION_SERVICES sqlnet.ora内容作用详见官方文档:http://docs.oracle.com/cd/B19306_01/network.102/b14213

RAC环境listener.ora和tnsnames.ora配置总结

RAC环境下面如果LISTENER.ORA和TNSNAMES.ORA没有配置好的话最常见的会出现 ora-12545 异常: 为了达到更好的使用目的,这里做一下总结: 首先,参考书 Oracle? Database Net Services Administrator's Guide Oracle? Database Net Services Reference 在6节 Local Naming Parameters (tnsnames.ora) 有一句话比较重要 Do not set the