加载中…
个人资料
管军
管军
  • 博客等级:
  • 博客积分:0
  • 博客访问:2,714
  • 关注人气:0
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
相关博文
推荐博文
谁看过这篇博文
加载中…
正文 字体大小:

ORA-27504 ORA-600无法启动Oracle RAC

(2007-07-14 07:59:21)
 改错hosts文件导致ORA-27504 ORA-600无法启动Oracle RAC Database



已经有一年多没有写关于Oracle的技术案例了。最近又处理了一个案例,特此记下。

前天晚上朋友告诉我说公司的Oracle DB挂了.远程登录到他们的数据库,以下是基本过程介绍

这是一组运行在HP-UX(硬件是HP Itaniumn2 动能服务器) 的 Oracle 10g 的RAC ( Real Application Cluster )服务器。在晚上19:51时DB Crash。朋友试图重起DB,无法成功启动Oracle。后来尝试重起服务器,也无法启动Oracle。而且,连Oracle单机也无法启动。

我查看了一下Oracle的Alert log,里面充满了重起的信息,奇怪的是并没有ORA错误的存在,总是到开启数据库的时后就Hang住了。回想以前处理过的问题,应该和Oracle的内存管理有关,可能是之前失败的进程没有释放share memory或者semaphores造成。于是先用 ps -ef | grep username 这个命令检查是否有残留的Oracle进程,发现并没有残留进程存在。然后尝试用ipcs查看内存占用状况,果然发现有id号为6516的 semaphores残留。使用ipcrm -s 6515将此残留信号集杀掉。再让朋友尝试重起Oracle(因为他才是DBA,所以一切操作都应该要让他执行:))。

在重起Oracle时,朋友跟我说Oracle报ORA-600错误了,DB还是开不起来。这是一个好现象,只要有错误号就好办了。我们知道,ORA-600错误一般都是由其他错误而引起的,一般不会单独出现。于是,我再去检查Oracle的Alert Log。

果然看到:ORA-27504: IPC error creating OSD context 。好了,真相快大白了。凭经验,IPC错误一般都是和RAC Cluster的各Node之间的沟通问题有关,一般沟通有问题时,基本上都会造成IPC error。

这两台运行HP-UX的Server是使用Network作为Heart beat的(之前我玩的Compaq Alpha Server是使用Memory Channel的)。所以问题应该归结到网络问题上。netstat -ni查看网络设备,lan3是作为心跳线的。反复询问朋友最近又没有改网络配置,朋友回答说,下午有过网络问题,网络有问题后,备份出了问题,然后备份管理员也许改过网络配置。接着他去找备份管理员。果然,那家伙在下午修改了这台服务器的hosts文件,并且,把IP敲错了!

将hosts文件修改正确后,启动Database成功。

结论,这个问题应该是个小问题,应该很快就能解决(出问题,首先应该想到最近改了什么配置)。但解决这么迟缓则凸现了一个大问题——管理的问题。为什么修改配置前不需要申报?为什么随便哪个管理员都可以修改正式环境的配置?为什么修改后不通知其他人?为什么无法解决问题时不尽快通知能够帮忙的人?ITGC有没有真正落实?这些管理上的问题亟待解决!

另,附一篇在Oracle的metalink上查到的类似的案例(过多的网络设备作为节点沟通导致的ORA-27504):

主题:     ORA-27504 Unable to Start Instance In RAC Mode
      文档 ID:     注释:387396.1     类型:     PROBLEM
      上次修订日期:     14-AUG-2006     状态:     MODERATED

In this Document
  Symptoms
  Cause
  Solution

This document is being delivered to you via Oracle Support's Rapid Visibility (RaV) Rapid Visibility (RaV) process, and therefore has not been subject to an independent technical review.
Applies to:
Oracle Server - Enterprise Edition - Version: 10.1 to 10.2
This problem can occur on any platform.
Symptoms
Try to startup the instance under ORACLE_HOME with RAC option, get following error:

ORA-27504: IPC error creating OSD context
ORA-27300: OS system dependent operation:skgxpcini failed with status: 0
ORA-27301: OS failure message: Error 0
ORA-27302: failure occurred at: past_inmemor

CRS is up and running fine on this node.
Cause
There are too many entries for cluster_interconnect in OCR.
$ORA_CRS_HOME/bin/oifcfg getif shows:
bond0 192.168.253.0 global cluster_interconnect
eth0 192.168.254.0 global cluster_interconnect
eth2 192.168.253.0 global cluster_interconnect
eth4 192.168.253.0 global cluster_interconnect
eth6 160.106.25.100 global public

In this case, eth2 and eth4 are the underlying interface for bond0. eth0 is not related with cluster_interconnect. So only bond0 interface should be used as cluster_interconnect.
Solution
Run following command to delete extra interface, eg:

$ORA_CRS_HOME/bin/oifcfg delif -global eth0
$ORA_CRS_HOME/bin/oifcfg delif -global eth2
$ORA_CRS_HOME/bin/oifcfg delif -global eth3

After this, $ORA_CRS_HOME/bin/oifcfg getif should show:

bond0 192.168.253.0 global cluster_interconnect
eth6 160.106.25.100 global public

Startup the instance again, it is fine without error.
Errors
ORA-27300 OS system dependent operation:%s failed with status: %s
ORA-27301 OS failure message: %s
ORA-27302 failure occurred at: %s
ORA-27504 IPC error querying network address of a por

0

阅读 评论 收藏 转载 喜欢 打印举报/Report
  • 评论加载中,请稍候...
发评论

    发评论

    以上网友发言只代表其个人观点,不代表新浪网的观点或立场。

      

    新浪BLOG意见反馈留言板 电话:4000520066 提示音后按1键(按当地市话标准计费) 欢迎批评指正

    新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 会员注册 | 产品答疑

    新浪公司 版权所有