ORACLE 11g, EM 无法启动,我使用EMCA命令重新配置ORACLEEM,如下:
I:\Documents and Settings\geshaoqing>emca -configdbcontrol db -repos recreate遇到以下问题:[oracle@rac1 ~]$ emca -config dbcontrol db -repos recreateEMCA 开始于 2011-12-15 9:57:42
EM Configuration Assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。输入以下信息:
数据库 SID: racdb
Exception in thread "main" oracle.sysman.emcp.exception.DatabaseUnavailableException: 数据库实例不可用。
    at oracle.sysman.emcp.DatabaseChecks.throwDBUnavailableException(DatabaseChecks.java:151)
    at oracle.sysman.emcp.DatabaseChecks.checkDbAvailabilityImpl(DatabaseChecks.java:139)
    at oracle.sysman.emcp.DatabaseChecks.checkDbAvailability(DatabaseChecks.java:163)
    at oracle.sysman.emcp.DatabaseChecks.getDbServiceName(DatabaseChecks.java:582)
    at oracle.sysman.emcp.EMConfigAssistant.performConfiguration(EMConfigAssistant.java:1267)
    at oracle.sysman.emcp.EMConfigAssistant.statusMain(EMConfigAssistant.java:573)
    at oracle.sysman.emcp.EMConfigAssistant.main(EMConfigAssistant.java:521)
[oracle@rac1 ~]$ emca -config dbcontrol db -repos recreateEMCA 开始于 2011-12-15 10:23:41
EM Configuration Assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。输入以下信息:
数据库 SID: racdb1
监听程序端口号: 1521
监听程序 ORACLE_HOME [ /opt/app/oracle/product/11.2.0 ]:
SYS 用户的口令:  
DBSNMP 用户的口令:  
SYSMAN 用户的口令:  
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
ASM ORACLE_HOME [ /opt/app/oracle/product/11.2.0 ]:
ASM SID [ +ASM ]:
ASM 端口 [ 1521 ]:
ASM 用户名 [ ASMSNMP ]:
ASM 用户口令:  
-----------------------------------------------------------------已指定以下设置数据库 ORACLE_HOME ................ /opt/app/oracle/product/11.2.0本地主机名 ................ rac1
监听程序 ORACLE_HOME ................ /opt/app/oracle/product/11.2.0
监听程序端口号 ................ 1521
数据库 SID ................ racdb1
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............
ASM ORACLE_HOME ................ /opt/app/oracle/product/11.2.0
ASM SID ................ +ASM
ASM 端口 ................ 1521
ASM 用户角色 ................ SYSDBA
ASM 用户名 ................ ASMSNMP-----------------------------------------------------------------
是否继续? [是(Y)/否(N)]: Y
2011-12-15 10:24:31 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 /opt/app/oracle/cfgtoollogs/emca/racdb/emca_2011_12_15_10_23_41.log。
2011-12-15 10:24:33 oracle.sysman.emcp.EMConfig perform
严重: 监听程序未启动或数据库服务未注册到该监听程序。启动该监听程序并注册数据库服务, 然后重新运行 EM Configuration Assistant。
有关详细资料, 请参阅 /opt/app/oracle/cfgtoollogs/emca/racdb/emca_2011_12_15_10_23_41.log 中的日志文件。
无法完成配置。 有关详细资料, 请参阅 /opt/app/oracle/cfgtoollogs/emca/racdb/emca_2011_12_15_10_23_41.log 中的日志文件。
[oracle@rac1 ~]$ source ~/.bash_profile
[oracle@rac1 ~]$ echo ORACLE_HOSTNAME
ORACLE_HOSTNAME
[oracle@rac1 ~]$ echo $ORACLE_HOSTNAME
****************************************************************************************
1.监听文件如下:
[oracle@rac1 admin]$ cat listener.ora
LISTENER1=(DESCRIPTION=(ADDRESS_LIST=(ADDRESS=(PROTOCOL=IPC)(KEY=LISTENER1))))          # line added by Agent
# listener.ora Network Configuration File: /opt/app/oracle/product/11.2.0/network/admin/listener.ora
# Generated by Oracle configuration tools.ENABLE_GLOBAL_DYNAMIC_ENDPOINT_LISTENER1 = ON

LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1)(PORT = 1521))
    )
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
    )
  )
ADR_BASE_LISTENER = /opt/app/oracle
****************************************************************************************8
2.TNSNAMES.ORA 如下:
[oracle@rac1 admin]$ cat tnsnames.ora
# tnsnames.ora Network Configuration File: /opt/app/oracle/product/11.2.0/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.

RACDB1 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac1-vip)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.159)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = racdb)
      (INSTANCE_NAME = racdb1)
    )
  )
RACDB2 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = rac2-vip)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.160)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = racdb)
      (INSTANCE_NAME = racdb2)
    )
  )RACDB =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.181)(PORT = 1521))
      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.183)(PORT = 1521))
    )
    (LOAD_BALANCE= yes)
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = racdb)
    )
  )
****************************************************************************************
整了半天,也没找到哪里有问题,
请大家指点指点。

解决方案 »

  1.   

    数据库实例不可用,确定Oracle服务已经启动。
    再有给的SID是否正确。
      

  2.   

    测试发现,RAC1节点确认没有启动实例,启动后,再试,但问题仍然存在。
    [grid@rac1 bin]$ srvctl status database -d racdb
    实例 racdb1 没有在 rac1 节点上运行
    实例 racdb2 正在节点 rac2 上运行
    [grid@rac1 bin]$ srvctl start  database -d racdb
    [grid@rac1 bin]$ srvctl status database -d racdb
    实例 racdb1 正在节点 rac1 上运行
    实例 racdb2 正在节点 rac2 上运行
      

  3.   

    但现在 实例也运行了,实例名称:RACDB1也应该是对的。因为已出现以下配置,说明应该是
    已找到了实例呀,为什么还有错误呢。:(ERROR:严重: 监听程序未启动或数据库服务未注册到该监听程序
    已指定以下设置数据库 ORACLE_HOME ................ /opt/app/oracle/product/11.2.0本地主机名 ................ rac1
    监听程序 ORACLE_HOME ................ /opt/app/oracle/product/11.2.0
    监听程序端口号 ................ 1521
    数据库 SID ................ racdb1
    通知的电子邮件地址 ...............
    通知的发件 (SMTP) 服务器 ...............
    ASM ORACLE_HOME ................ /opt/app/oracle/product/11.2.0
    ASM SID ................ +ASM
    ASM 端口 ................ 1521
    ASM 用户角色 ................ SYSDBA
    ASM 用户名 ................ ASMSNMP-----------------------------------------------------------------
    是否继续? [是(Y)/否(N)]: Y