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
 
 
 
 

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

  1. ORA-12541:TNS:no listener 客户端tnsnames.ora配置,以及服务端listener.ora配置

    需求:客户端(192.168.25.1)需要访问服务端(192.168.7.215)的Oracle库ORCL. 步骤一:配置客户端tnsnames.ora 步骤二:配置服务端listener.ora ...

  2. Oracle的tnsnames.ora配置(PLSQL Developer)

    首先打开tnsnames.ora的存放目录,一般为D:\app\Administrator\product\11.2.0\client_1\network\admin,就看安装具体位置了. 步骤阅读 ...

  3. Oracle RAC客户端tnsnames.ora相关配置及测试

    1.Oracle RAC服务端/etc/hosts部分内容如下 2.查看服务端的local_listener和remote_listener参数 3.客户端tnsnames.ora配置参考 3.1 1 ...

  4. Vijos1006P1006晴天小猪历险记之Hill[最短路]

    P1006晴天小猪历险记之Hill Accepted 标签:晴天小猪历险记[显示标签]     背景 在很久很久以前,有一个动物村庄,那里是猪的乐园(^_^),村民们勤劳.勇敢.善良.团结……不过有一 ...

  5. oracle的sqlnet.ora,tnsnames.ora,listener.ora三个配置文件

    总结: 1 .三个配置文件都是放在$ORACLE_HOME\network\admin目录下. 2 .sqlnet.ora确定解析方式 3 .listener.ora上设SID_NAME,通常用于JD ...

  6. oracle客户端安装配置 tnsnames.ora文件

    Oracle客户端tnsnames.ora连接配置 Oracle90的在C:\Oracle\ora90\network\ADMIN下面 Oracel10g的在D:\oracle\product\10. ...

  7. 修改tnsnames.ora文件中配置内容中的连接别名后,连接超时解决办法

    1.tnsnames.ora文件中配置内容中的连接别名:由upaydb修改为IP地址 2.连接超时 定位原因: PLSQL登录界面的数据库列表就是读的tnsname.ora中连接的别名,这个文件中连接 ...

  8. 安装了多个Oracle11g的客户端,哪个客户端的tnsnames.ora会起作用?

    如果我们由于需要安装了多个Oracle的client,哪个客户端的tnsnames.ora会起作用呢? 答案是: 在安装好clinent端后,安装程序会把client的bin目录放到path里面,pa ...

  9. PLSQL登录数据库 报ORA -12154的诡异问题

    https://q.cnblogs.com/q/89420/ 现象: 1.机器上先后安装了oracle两个版本的client.在装第一个client后,plsql可以顺利连接数据库a并登录. 2.安装 ...

  10. tnsnames.ora配置注意(连接新的数据库)

    文件地址D:\app\think\product\11.2.0\instantclient_11_2\network\admin\tnsnames.ora# tnsnames.ora Network ...

随机推荐

  1. hdu5017:补题系列之西安网络赛1011

    补题系列之西安网络赛1011 题目大意:给定一个椭球: 求它到原点的最短距离. 思路: 对于一个椭球的标准方程 x^2/a^2 + y^2/b^2 +z^2/c^2=1 来说,它到原点的最短距离即为m ...

  2. hdu4641-K-string(后缀自动机)

    Problem Description Given a string S. K-string is the sub-string of S and it appear in the S at leas ...

  3. TCP头分析+面试题

    一.测试程序 我们先用python来写两个测试脚本,非常简单,看代码: 服务端: from socket import * def accept(): sock = socket(AF_INET, S ...

  4. 关于bootstrap--网格系统

    1. 2.偏移列(col-md-offset-*):为了在大屏幕显示器上使用偏移,请使用 .col-md-offset-* 类.这些类会把一个列的左外边距(margin)增加 * 列,其中 * 范围是 ...

  5. Web 前端利器Emmet 的HTML用法总结

    在tutsplus那里看到一篇文章介绍Emmet 的用法,形象的gif图片一目了然,本来想翻译过来的(虽然翻译用法倒不是很难),但搜索发现已经有国人翻译过了,遂直接拿来转载在这里. Emmet 简介 ...

  6. 常用文件的文件头(附JAVA测试类)

    1. MIDI (mid),文件头:4D546864 2. JPEG (jpg),文件头:FFD8FF 3. PNG (png),文件头:89504E47 4. GIF (gif),文件头:47494 ...

  7. mybatis 调用mysql存储过程 带输出输入参数

    http://lohasle.iteye.com/blog/1669879 存储过程都是一样的,只是根据自己的喜好,可以用MAP或者JAVABEAN传递参数. -- ----------------- ...

  8. 优化移动体验的HTML5技巧

    简介 连轴转的刷新,不断变向的页面转换,以及tap事件的周期性的延迟仅仅是现在移动web环境令人头疼事情的一小部分.开发者正试图尽可能的靠近原生应用,但却经常被各种兼容问题,系统复位,和僵化的框架打乱 ...

  9. 标准I/O介绍

    标准I/O库 1. 标准I/O介绍 不仅是在UNIX系统中,很多操作系统上都实现了标准I/O库. 标准I/O库由ANSI C 标准说明 标准 I/O 库处理很多细节,例如带有缓冲分配.以优化长度执行的 ...

  10. (转)SQL语句中的N'xxxx'是什么意思

    SQL语句中的N'xxxx'是什么意思 我们在一些sql存储过程,触发器等中经常会见到类似 N'xxxx' 是什么意思? 例如:if exists (select * from dbo.sysobje ...