解决问题: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)