大侠好,我刚开始学oracle看two day dba时遇到下列一连串的错误,还希望指教一下思路,如何解决emctl start dbconsole
报错:
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to da
tabase unique name.

网上的解决方法:
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.解决办法如下~C:\>sqlplus /nologSQL*Plus: Release 11.2.0.1.0 Production on 星期二 11月 1 10:3Copyright (c) 1982, 2010, Oracle.  All rights reserved.SQL> conn sys/admin as sysdba
已连接。
SQL> alter user dbsnmp identified by admin;    /// 此处将DBSNMP的密码设置为admin用户已更改。SQL> drop role MGMT_USER;角色已删除。SQL> drop user MGMT_VIEW cascade;用户已删除。SQL> drop user sysman cascade;用户已删除。SQL> drop PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;同义词已删除。SQL> drop public synonym SETEMVIEWUSERCONTEXT;同义词已删除。SQL> $emca -config dbcontrol db -repos createEMCA 开始于 2011-11-1 11:15:57
EM Configuration Assistant, 11.2.0.0.2 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。输入以下信息:
数据库 SID: ODSEXDB
已为数据库 ODSEXDB 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 ODSEXDB
此操作将移去现有配置和默认设置, 并重新执行配置
是否继续? [是(Y)/否(N)]: y
监听程序 ORACLE_HOME [ D:\app\Administrator\product\11.2.0\dbhome_1 ]: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------已指定以下设置数据库 ORACLE_HOME ................ D:\app\Administrator\product\11.2.0\dbhome_1本地主机名 ................ 76481-640
监听程序 ORACLE_HOME ................ 1521
监听程序端口号 ................ 1521
数据库 SID ................ ODSEXDB
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............-----------------------------------------------------------------
是否继续? [是(Y)/否(N)]: y
2011-11-1 13:13:06 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 D:\app\Administrator\cfgtoollogs\emca\ODSEXDB\emca_2011_11_01_13_12_31.log

2011-11-1 13:13:08 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2011-11-1 13:28:25 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
2011-11-1 13:28:42 oracle.sysman.emcp.EMReposConfig uploadConfigDataToRepository
信息: 正在将配置数据上载到 EM 资料档案库 (此操作可能需要一段时间)...
2011-11-1 13:31:38 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功上载配置数据
2011-11-1 13:31:45 oracle.sysman.emcp.util.DBControlUtil configureSoftwareLib
信息: 软件库已配置成功。
2011-11-1 13:31:45 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
信息: 正在部署预配档案...
2011-11-1 13:31:56 oracle.sysman.emcp.EMDBPostConfig configureSoftwareLibrary
信息: 预配档案部署成功。
2011-11-1 13:31:56 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
信息: 正在保护 Database Control (此操作可能需要一段时间)...
2011-11-1 13:32:10 oracle.sysman.emcp.util.DBControlUtil secureDBConsole
信息: 已成功保护 Database Control。
2011-11-1 13:32:10 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2011-11-1 13:35:36 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
解决办法~~
2011-11-1 13:35:37 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 https://76481-640:5500/em <<<<<<<<<<<
2011-11-1 13:35:51 oracle.sysman.emcp.EMDBPostConfig invoke
警告:
************************  WARNING  ************************管理资料档案库已置于安全模式下, 在此模式下将对 Enterprise Manager 数据进行加密。加密密钥已放置在文件
 D:/app/Administrator/product/11.2.0/dbhome_1/76481-640_ODSEXDB/sysman/config/emkey.ora 中。请务必备
份此文件, 因为如果此文件丢失, 则加密数据将不可用。***********************************************************
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2011-11-1 13:35:51

尝试后出现错误:-----------------------------------------------------------------
是否继续? [是(Y)/否(N)]: y
2013-6-28 20:15:10 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:\app\Administrator\cfgtoollogs\emca\database_TIM\emca
_2013_06_28_20_13_46.log。
2013-6-28 20:15:23 oracle.sysman.emcp.util.DBControlUtil stopOMS
信息: 正在停止 Database Control (此操作可能需要一段时间)...
2013-6-28 20:15:27 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2013-6-28 20:18:06 oracle.sysman.emcp.EMReposConfig invoke
严重: 创建资料档案库时出错
2013-6-28 20:18:06 oracle.sysman.emcp.EMReposConfig invoke
信息: 有关详细资料, 请参阅 E:\app\Administrator\cfgtoollogs\emca\database_TIM\em
ca_repos_create_<日期>.log 中的日志文件。
2013-6-28 20:18:06 oracle.sysman.emcp.EMConfig perform
严重: 创建资料档案库时出错
有关详细资料, 请参阅 E:\app\Administrator\cfgtoollogs\emca\database_TIM\emca_201
3_06_28_20_13_46.log 中的日志文件。
无法完成配置。 有关详细资料, 请参阅 E:\app\Administrator\cfgtoollogs\emca\databa
se_TIM\emca_2013_06_28_20_13_46.log 中的日志文件。

E:\app\Administrator\cfgtoollogs\emca\database_TIM\emca_2013_06_28_20_13_46.log 中的日志文件连接。http://blog.sina.com.cn/s/blog_c2e4ec450101ka89.html
网上的解决方法:
在listener.ora中更改为:
(ADDRESS =(PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
在cmd中设置环境变量(注意:copydb为oracle实例的名称)
set ORACLE_HOSTNAME=localhost  set oracle_sid=copydb  set ORACLE_UNQNAME=copydb 重新启动listenerlsnrctl start在sqlplus中注册数据库服务alter system register;查看em状态:emctl status dbconsole若未打开,则启动em:emctl start dbconsole访问https://127.0.0.1:1158/em即可

依然报错:
emctl status dbconsole
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to da
tabase unique name.

解决方案 »

  1.   

    你的db_name是 ODSEXDB  还是 copydb?windows: set ORACLE_SID=db_name
    然后再 emctl start dbconsole
      

  2.   

    我的db_name是databaseTIMODSEXDB,和copydb分别是我在网上找的两个解决方法的db_name,下面是我执行后的结果Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.C:\Documents and Settings\Administrator>set ORACLE_SID=db_nameC:\Documents and Settings\Administrator>set ORACLE_SID=databaseTIMC:\Documents and Settings\Administrator>emctl start dbconsole
    Oracle Enterprise Manager 11g Database Control Release 11.2.0.1.0
    Copyright (c) 1996, 2010 Oracle Corporation.  All rights reserved.
    https://XP-201306261933:5500/em/console/aboutApplication
    Starting Oracle Enterprise Manager 11g Database Control ...服务名无效。请键入 NET HELPMSG 2185 以获得更多的帮助。
    C:\Documents and Settings\Administrator>NET HELPMSG 2185服务名无效。
    解释试图启动系统中没有配置的服务。操作请检查服务名称是否正确,或者用服务器管理器中的“服务”选项来检测配置信息。C:\Documents and Settings\Administrator>
      

  3.   

    1) C:\Documents and Settings\Administrator>set ORACLE_SID=db_name  不明白你为什么要设置这一步?而且、也没有这样的写法!
    2)看一下你的db_name是多少:
    sys@ORCL> show parameter db_nameNAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    db_name                              string      orcl
    3)到windows服务管理那边把dbconsole的这个服务确认是否打开4)在浏览器里面输入 https://127.0.0.1:1158/em
      

  4.   

    谢谢你的指导!1) C:\Documents and Settings\Administrator>set ORACLE_SID=db_name 是输入错了,不知道这个语句有什么作用就一起复制过来了,我记得我的db_name是databaseTIM,但不知是不是记错了,为什么和下面的value值不一样,sqlplus和sql我还不懂,只是刚安装了oracle准备学习,就遇到了帖子上的错误。SQL*Plus: Release 11.2.0.1.0 Production on 星期六 6月 29 22:19:14 2013Copyright (c) 1982, 2010, Oracle.  All rights reserved.
    Connected to:
    Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
    With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSQL> show parameter db_nameNAME                                 TYPE
    ------------------------------------ ----------------------
    VALUE
    ------------------------------
    db_name                              string
    database
    SQL>

      

  5.   

    解决方案:
    http://blog.mclaughlinsoftware.com/2012/08/23/whats-oracle_unqname/
      

  6.   

    先设置unqname: set ORACLE_UNQNAME=实例名
    重新配置emctl: emca -config dbcontrol db
    之后就可以用了, 我的问题是这么解决的
      

  7.   

    刚刚遇到跟你一样的问题,我跑到oracle的安装目录app下的目录,逐个文件夹搜索,把名字为你的实例名的文件夹全部删除,然后点击安装就可以继续安装了