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

症状:

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
直接配置网卡的设置


这里出现了错误,修改完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被修改了??