当前位置: 首页 > database > 正文

ORA-00600: internal error code 问题的解决

问题总是会有的,有时候解决问题也是一种乐趣,而处理问题的关键是“不抛弃、不放弃”。

症状:

FC6( kernel 2.6.18-1)上安装的Oracle10g

修改了IP地址,从原来的192.168.1.* 到 172.16.0.*

系统重启后,发现oracle监听无法启动。

提示:
ORA-00600: internal error code, arguments: [%s], [%s], [%s], [%s], [%s], [%s], [%s], [%s]

oracle数据库也无法启动,提示数据库无法连接。

 

看似很简单的问题,以下是曲折的问题解决过程:

googleing :    keywords:  ORA-00600: internal error code, arguments:

翻了一通,说是什么头晕眼花,没有收获。

查询oracle的监听(listener.ora)配置。

# listener.ora Network Configuration File: /opt/oracle/product/10g/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /opt/oracle/product/10g)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
  )
  发现没有任何改动。

  里面只有host配置,并没有具体指定某个IP。

重新修改网卡的IP地址:
vi /etc/sysconfig/network-scripts/ifcfg-eth0
# nVidia Corporation MCP61 Ethernet
DEVICE=eth0
HWADDR=10:c0:f8:b9:1c:30
IPADDR=172.16.0.252
NETMASK=255.255.255.0
ONBOOT=yes
GATEWAY=172.16.0.1
TYPE=Ethernet

Reboot Server 。。。

一分钟过后,oralce监听仍然无法启动。

#setup
直接配置网卡的设置

net-setup.png

                                                                                                                                   
这里出现了错误,修改完ip后,无法save 只有quit。

提示如下:

出现一个未解决的异常。这极可能是一个程序错误,请将其崩溃组合码转储入一个文件,
然后在 https://bugzilla.redhat.com/bugzilla 提交一份关于 system-config-network 的详细错误报告。

Component: system-config-network
Version: 1.3.95
Summary: TB /usr/lib/python2.4/sre.py:227:_compile:error: multiple repeat
Traceback (most recent call last):
  File “/usr/sbin/system-config-network-tui”, line 277, in ?
    plist.save()
  File “/usr/share/system-config-network/netconfpkg/NCProfileList.py”, line 394, in save
    del hoconf[i]
  File “/usr/lib/python2.4/site-packages/rhpl/Conf.py”, line 581, in __delitem__
    while self.findnextline(‘^\S*[‘ + self.separators + ‘]+’ + varname):
  File “/usr/lib/python2.4/site-packages/rhpl/Conf.py”, line 198, in findnextline
    elif re.search(regexp, self.lines[self.line]):
  File “/usr/lib/python2.4/sre.py”, line 134, in search
    return _compile(pattern, flags).search(string)
  File “/usr/lib/python2.4/sre.py”, line 227, in _compile
    raise error, v # invalid expression
error: multiple repeat

> /usr/lib/python2.4/sre.py(227)_compile()
-> raise error, v # invalid expression
(Pdb)

googleing 。。。。。。。。。。。
未果。

郁闷中。难道让我重装oracle?
虽然作为一台测试服务器,重装oracle也是一件比较让人不爽的事情啊。

接着google。。。。。。 keywords: erverything (先看了会娱乐八卦再说。)

无果。。。

我无语了。。。

半小时后。
偶然发现Linux下面的提示如下:

[root@bogon]#

这个bogon是什么东东哩?

是不是中毒了,这台机器的防范可是超级薄弱啊,所有口令都是12345678,哈哈

赶紧看/var/log

看了一遍所有日志,和配置等等,没有发现异常。

使用了chkrootkit  http://www.chkrootkit.org下载 chkrootkit.tar.gz  最新版本 chkrootkit-0.48

./chkrootkit > result.txt

vi result.txt
ROOTDIR is `/’
Checking `amd’… not found
Checking `basename’… not infected
Checking `biff’… not found
Checking `chfn’… not infected
Checking `chsh’… not infected
Checking `cron’… not infected
Checking `crontab’… not infected
Checking `date’… not infected
Checking `du’… not infected
Checking `dirname’… not infected
Checking `echo’… not infected
Checking `egrep’… not infected
Checking `env’… not infected

Searching for suspect PHP files… nothing found
Searching for anomalies in shell history files… nothing found
Checking `asp’… not infected
Checking `bindshell’… not infected
Checking `lkm’… chkproc: nothing detected
chkdirs: nothing detected
Checking `rexedcs’… not found
Checking `sniffer’… eth0: not promisc and no PF_PACKET sockets
Checking `w55808’… not infected
Checking `wted’… chkwtmp: nothing deleted
Checking `scalper’… not infected
Checking `slapper’… not infected
Checking `z2’… chklastlog: nothing deleted
Checking `chkutmp’… chkutmp: nothing deleted

没有发现异常。

#hostname
bogon

继续google…  keywords: hostname bogon

解释说可能是内网防火墙所致,跟IP段或许有关系。
bogon是指那些不该出现在internet路由表中的地址
这些地址应该包括:
1,私有地址如10,172.16-32,192.168…..
2,还未正式分配出去的地址
Bogons are prefixes that should never appear in the Internet routing table, and obviously should not appear as the source address in any packets you receive.

联系起来最近的操作,恰恰证实了这一点。

昨天刚刚把ISA2004架设好,内网网段从192.168.1.0/24  改到了 172.16.0.1/24

但是究竟是什么修改了Linux的hostname了呢?

先不管他,修改hostname,改为原来的hostname。

#hostname localhost.localdomain

vi /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
172.16.0.252            localhost.localdomain localhost

#reboot 

系统重启后提示变为:[root@localhost]
#hostname
localhost.localdomain
正常了,跟oracle中监听的配置一致。

切换到oracle用户。

[oracle@localhost admin]$ lsnrctl start

LSNRCTL for Linux: Version 10.2.0.1.0 – Production on 04-MAR-2008 13:40:44

Copyright (c) 1991, 2005, Oracle.  All rights reserved.

Starting /opt/oracle/product/10g/bin/tnslsnr: please wait…

TNSLSNR for Linux: Version 10.2.0.1.0 – Production
System parameter file is /opt/oracle/product/10g/network/admin/listener.ora
Log messages written to /opt/oracle/product/10g/network/log/listener.log
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1)))
STATUS of the LISTENER
————————
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 10.2.0.1.0 – Production
Start Date                04-MAR-2008 13:40:44
Uptime                    0 days 0 hr. 0 min. 0 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/product/10g/network/admin/listener.ora
Listener Log File         /opt/oracle/product/10g/network/log/listener.log
Listening Endpoints Summary…
  (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1)))
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=localhost.localdomain)(PORT=1521)))
Services Summary…
Service “PLSExtProc” has 1 instance(s).
  Instance “PLSExtProc”, status UNKNOWN, has 1 handler(s) for this service…
The command completed successfully

启动数据库。
[oracle@localhost admin]$ sqlplus “/as sysdba”

SQL*Plus: Release 10.2.0.1.0 – Production on Tue Mar 4 13:40:57 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area  285212672 bytes
Fixed Size                  1218992 bytes
Variable Size              88082000 bytes
Database Buffers          192937984 bytes
Redo Buffers                2973696 bytes
Database mounted.
Database opened.

oracle启动正常。

总结:

如果您的oracle有这样的错误

 ORA-00600: internal error code, arguments:

 先看看是不是hostname被修改了??

 

本文固定链接: https://www.2hei.net/2008/03/04/ora00600_internal_error_code/ | 2hei.net

该日志由 u2 于2008年03月04日发表在 database 分类下,
原创文章转载请注明: ORA-00600: internal error code 问题的解决 | 2hei.net

报歉!评论已关闭.