saptechnique

Better late than never. - 郭富

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
操作系统是32位的Linux 5.1:
# cat /etc/redhat-release
# Red Hat Enterprise Linux Server release 5.1 (Tikanga)

数据库版本是10.2.0.3.0:

SQL> select * from v$version;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Prod
PL/SQL Release 10.2.0.3.0 - Production
CORE    10.2.0.3.0      Production
TNS for Linux: Version 10.2.0.3.0 - Production
NLSRTL Version 10.2.0.3.0 - Production

network文件内容如下:
$ cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=localhost.localdomain

hosts文件内容如下:
$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6

在没有修改主机名的情况下一切正常,因为想要规范linux服务器的名字,欲修改Linux的hostname,但是修改后数据库无法启动,有此经验的朋友请指点,感谢ing
修改主机名我尝试了两种:
第一种.直接修改名字,不重启机器
# hostname oratest
第二种.修改network文件,重新启动机器
$ cat /etc/sysconfig/network
NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=oratest

修改主机名之后问题现象如下:
[oracle@oratest ~]$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.3.0 - Production on Mon Jan 12 05:05:45 2009

Copyright (c) 1982, 2006, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> startup;
ORA-00600: internal error code, arguments: [keltnfy-ldmInit], [46], [1], [], [], [], [], []


[oracle@oratest ~]$ emctl start dbconsole
TZ set to PRC
Exception in getting local host
java.net.UnknownHostException: oratest: oratest
        at java.net.InetAddress.getLocalHost(InetAddress.java:1191)
        at oracle.sysman.emSDK.conf.TargetInstaller.getLocalHost(TargetInstaller.java:5488)
        at oracle.sysman.emSDK.conf.TargetInstaller.main(TargetInstaller.java:4102)
Exception in getting local host
java.net.UnknownHostException: oratest: oratest
        at java.net.InetAddress.getLocalHost(InetAddress.java:1191)
        at oracle.sysman.emSDK.conf.TargetInstaller.getLocalHost(TargetInstaller.java:5488)
        at oracle.sysman.emSDK.conf.TargetInstaller.main(TargetInstaller.java:4102)
OC4J Configuration issue. /oracle/u01/app/oracle/product/10.2.0/db_1/oc4j/j2ee/OC4J_DBConsole_null_ora10g not found.

请问,如果在创建数据库之后需要修改主机名字,该如何操作,感觉这是一个比较常见的问题,但是苦于迷陷其中,不得其法。
 

 

TAG: 故障处理 主机名 hostname

sundog315的个人空间sundog315 发布于2009-01-12 11:11:41
hostname -v oratest
修改/etc/hosts
修改listener.ora及tnsname.ora
重启
Secooler 快乐的DBAsecooler 发布于2009-01-12 12:16:31

QUOTE:

原帖由 sundog315 于 2009-1-12 11:11 发表 
hostname -v oratest
修改/etc/hosts
修改listener.ora及tnsname.ora
重启
非常感谢您的回复,不过能请您说的详细一些,该如何修改?

列出我的hosts, listener.ora和tnsnames.ora

$ cat /etc/hosts
# Do not remove the following line, or various programs
# that require network functionality will fail.
127.0.0.1               localhost.localdomain localhost
::1             localhost6.localdomain6 localhost6

$ cat listener.ora 
# listener.ora Network Configuration File: /oracle/u01/app/oracle/product/10.2.0/db_1/network/admin/listener.ora
# Generated by Oracle configuration tools.

SID_LIST_LISTENER =
  (SID_LIST =
    (SID_DESC =
      (SID_NAME = PLSExtProc)
      (ORACLE_HOME = /oracle/u01/app/oracle/product/10.2.0/db_1)
      (PROGRAM = extproc)
    )
  )

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = localhost.localdomain)(PORT = 1521))
    )
  )


$ cat tnsnames.ora 
# tnsnames.ora Network Configuration File: /oracle/u01/app/oracle/product/10.2.0/db_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

EXTPROC_CONNECTION_DATA =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))
    )
    (CONNECT_DATA =
      (SID = PLSExtProc)
      (PRESENTATION = RO)
    )
  )
howard_zhang的个人空间howard_zhang 发布于2009-01-12 12:28:42
Bug 5438154
sundog315的个人空间sundog315 发布于2009-01-12 12:37:48
hostname -v oratest
这时候,/etc/hosts应该已经自动改了,确认一下
127.0.0.1               oratest

修改listener
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oratest)(PORT = 1521))
    )
  )

如果不在本机使用sqlnet,则可以不改tnsnames.ora文件,改了也没有错:)
sundog315的个人空间sundog315 发布于2009-01-12 12:40:02
看错误信息,也有可能是BUG,我没遇到过,可以看一下。
Secooler 快乐的DBAsecooler 发布于2009-01-12 12:45:39

QUOTE:

原帖由 howard_zhang 于 2009-1-12 12:28 发表 
Bug 5438154
metalink上只是列出来和这个报错相关的信息,好像没有指导性的建议。
有具体的处理方法么?
Secooler 快乐的DBAsecooler 发布于2009-01-12 14:42:38
没有遇到这个问题的同学了么?
Secooler 快乐的DBAsecooler 发布于2009-01-12 17:25:11

QUOTE:

原帖由 sundog315 于 2009-1-12 12:37 发表 
hostname -v oratest
这时候,/etc/hosts应该已经自动改了,确认一下
127.0.0.1               oratest

修改listener
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = oratest)(PORT = 1521))
    )
  )

如果不在本机使用sqlnet,则可以不改tnsnames.ora文件,改了也没有错:)
正在试验中,我这里的操作系统使用命令hostname -v oratest修改主机名后,hosts文件没有发生任何的变化。
按照您的修改方式修改后,数据库可以启动了,但是listener无法启动。
问题继续跟踪ing



同时,我先修改主机名再进行创建数据库试试。

[ 本帖最后由 secooler 于 2009-1-12 17:35 编辑 ]
yangtingkun的个人空间yangtingkun 发布于2009-01-12 17:53:58
10g的bug,9i和11g好像都没有这个问题。
http://yangtingkun.itpub.net/post/468/459179
howard_zhang的个人空间howard_zhang 发布于2009-01-12 18:50:53

QUOTE:

原帖由 secooler 于 2009-1-12 12:45 发表 


metalink上只是列出来和这个报错相关的信息,好像没有指导性的建议。
有具体的处理方法么?
打上PATCH就OK
Secooler 快乐的DBAsecooler 发布于2009-01-13 09:40:15
感谢howard_zhang 和 yangtingkun 大哥的帮助,对这个问题已经有了新的认识,以后遇到问题多上metalink上搂搂 。
我找一下相应的patch打上试验一下。
from:
http://space.itpub.net/519536/viewspace-555646
posted on 2012-04-30 23:49  guofu  阅读(1679)  评论(0编辑  收藏  举报