解决问题:Asianux3下Oracle 10g无法启动

简要记之,仅作备忘。

关键词:红旗Asianux3 +Oracle 10g R2 for Linux x86-64


1. 上午接到咨询电话:Linux下Oracle无法启动。约定下午到现场尝试解决问题。


2. 到现场后,了解基本情况如下:

*.操作系统:Asianux3

*.数据库:Oracle 10g R2 for Linux x86-64

*.问题表现:服务器搬到新机房后,之前已装好的Oracle数据库无法正常使用,客户端连接时报监听错误。


3. 问题在前几天已经发现。

待到现场后,发现服务器上listener.ora、sqlnet.ora、tnsnames.ora这三个文件已被修改的面目全非。

尝试一个一个还原。


4. 上述文件修改还原后,Oracle的dbconsole仍无法启动。

使用emctl status dbconsole 或e mctl start dbconsole命令,均有报错:

-----------

OC4J Configuration issue.
/opt/app/oracle/product/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_localhost_orcl not found.

-----------


5. 因是正在装修的新办公大楼,新机房还未连上外界网络。无法使用笔记本上网查询问题,只好用手机代劳。

一般是因修改Oracle绑定的服务器的机器名,造成无法启动Oracle服务。

但此服务器在搬迁后只做了IP地址修改,并未对机器名做修改。

一时困惑,无解。


6. 系统目前正在测试部署中,数据库中还无任何数据。

征得同意后,决定重装Oracle。


7. 卸载Oracle后,使用Oranavi做全新安装。

前段安装比较顺利。在环境检测阶段网络设备报了一个“未执行”,忽略,继续。

当创建数据库实例进行到74%时,出现异常:

-----------

参数PORT的值null无效

请参阅/opt/app/oracle/product/10.2.0/db_1/cfgtoollogs/dbca/orcl/emConfig.log中的日志文件。

-----------

此数据库实例安装失败。确定后,继续完成Oracle的安装。

安装完毕后,发现tnsnames.ora中原本应是1521的端口,写着“null”:PORT = null。


8. 怀疑1521端口被占用。或者某配置文件或Oracle用户的环境变量中未明确指定1521端口。

折腾。

一圈下来后,没有发现任何有价值线索。

无奈,用dbca单独建立第二个数据库实例,做测试安装。

同样的问题,在创建数据库实例到74%时,抛出异常:参数PORT的值null无效。


9. 囿于环境。继续用手机上网搜索查找问题。

终于发现2个多月前,有人遇到相似问题。提到在/etc/hosts文件中主机IP配置可能有问题。

于是,打开/etc/hosts文件中查看。

果然,除了127.0.0.1的IP外,在/etc/hosts文件中还设置绑定了一个在服务器搬迁之前的旧主机IP。


10. 修改为现在的正确IP后,卸载已安装的Oracle数据库。

重新安装至完毕,一切OK!

在环境检测阶段也无任何异常,全部通过。


11. 这是第一次使用Asianux操作系统。不知/etc/hosts在系统安装时,默认的主机配置是如何写的。

打开RedFlag Linux,发现默认情况下,/etc/hosts中只有一行:

-----------

127.0.0.1 localhost.localdomain localhost

-----------

此配置使用设置127.0.0.1为HostIP,并无与系统真实的IP做任何绑定,可修改IP地址而Oracle服务器不会受任何影响。

而在Asianux中,/etc/hosts中出现了多个主机IP。

显然,是因修改了服务器的IP而导致Oralce服务受到影响。修改服务器IP的同时,也需同步修改/etc/hosts文件中所使用的主机IP。

(还未得知此前该主机的旧IP是否为系统安装后手工添加的,或与Asianux操作系统有关?需待确认和验证。)


12. 在linux下,/etc/host是是主机名和IP配置文件。

/etc/hosts文件中可配置如下类似内容:

-----------

127.0.0.1 localhost.localdomain localhost
192.168.1.100 linuxserver.com linuxserver
192.168.1.120 ftpserver ftp120

-----------

通常,hosts文件中每行文字代表一个主机配置信息。

每行文字由三部份组成,每部份由空格隔开:

第一部份:网络IP地址

第二部份:主机名或域名

第三部份:主机名别名

另,每行文字也可为两部份,即主机IP地址和主机名,如:192.168.1.100 linuxServer。

显示主机名和主机IP的命令:
# hostname
# hostname -i

By JRQ

2010/07/10 于南昌

[ -- 完 -- ]

你可能感兴趣的:(oracle,linux,咨询)