我安装的是Oracle 11g,Oracle的在线文档中说要从浏览器中访问Database Control console process,那么在Oracle服务器上必须起动了Database Control console process dbconsole。
事实上是我可以通过浏览器访问dbconsole,可是当我在oracle服务器上运行命令emctl status dbconsole查看dbconsole的运行状态时报如下错误,
Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
我的疑问是:既然我可以在浏览器中访问dbconsole了,那也就意味着服务器上的dbconsole服务已经起动起来了,并且运行正常,那为什么在服务器上查询服务状态的时候还会报这样的错误信息?

解决方案 »

  1.   

    请参考:其实就是em的问题重新配置emca即可。以后注意之前设置好ORACLE_UNQNAME 。
     
    总结收藏:
     
    1,修改DBSNMP密码:
     
    重新配置DBCONSOLE,需要输入DBSNMP密码,但任何密码都会显示错误,需要预先修改。
     
    sql>alter user dbsnmp identified by xxx;
     
    2,删除早期DBCONSOLE创建的用户:
     
    sql>drop role MGMT_USER;
     
    sql>drop user MGMT_VIEW cascade;
     
    sql>drop user sysman cascade;
     
    3,删除早期DBCONSOLE创建的对象:
     
    sql>drop PUBLIC SYNONYM MGMT_TARGET_BLACKOUTS;
     
    sql>drop public synonym SETEMVIEWUSERCONTEXT;
     
    4,重新创建DBCONSOLE:(如果是在windows下,要先到注册表删除DBCONSOLE的服务,重启电脑)
     
    $emca -config dbcontrol db -repos create
     
    如果此命令还是失败,可直接利用重建命令:
     
    $emca -config dbcontrol db -repos recreate
     
    根据提示,先输入SID,再输入Y继续;
     
    输入端口1521,输入SYS密码,输入DBSNMP密码,输入SYSMAN 密码,输入Y继续
     
    完成。
     
    5,检查状态 emctl status dbconsole。
      

  2.   

    原因找到了,是因为oracle用户的环境变量ORACLE_SID设置的有问题,但是我不知道为什么运行命令emctl status dbconsole之后提示说“Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.”
    感谢LuiseRADL的回答