最近接手了一个基于windows2003的oracle10的数据库。发现里面的数据库的em用不起来,我就重建了一把。
emca -repos drop
emca -repos create
emca -config dbcontrol db
在过程当中遇到了两个问题:
一.到第三步的时候一直有问题dbsnmp用户的密码在修改以后验证的时候一直通不过,也不报错,就死在那边
做以下操作解决:
1.Stop dbconsole
2.set new password for dbsnmp
3.test dbsnmp new password by connect
4.edit $ORACLE_HOME/host_sid/sysman/emd/targets.xml
  Search for the line:
      <Property NAME="UserName" VALUE="6f5848a4f53a2d0a" ENCRYPTED="TRUE"/>
      <Property NAME="password" VALUE="829e1a25401de489" ENCRYPTED="TRUE"/>
      Replace the encrypted value by the new password value
      Replace TRUE by FALSE
5.restart dbconsole二.
再启动,还是有问题,没有具体报错,把日志中的相关信息baidu以后,做如下处理:将主机名子unicom改为Unicom(就是把机器名的第一个字母更改为大写)
再操作,可以将三个命令顺利执行完。em重建以后,可以正常登录,但是在em主页面中,有如下报错:
java.lang.Exception: Exception in sending Request :: null。而且我只能进“主目录”、“维护”标签,如果选择“性能”、“管理”标签,就会自动注销退出。
网上搜了一把,基本上都说是时区的问题,可是我机器以及数据库的时区都是正常的,但是我还是尽量按照他们说的去做了:
但是在执行完“emctl resetTZ agent”命令后,提示需要进入sql的sysman用户模式,执行一下以下语句:
exec mgmt_target.set_agent_tzrgn('Unicom:1830','Asia/Shanghai')
但是我执行的结果有以下报错:
SQL> exec mgmt_target.set_agent_tzrgn('Unicom:1830','Asia/Shanghai')
BEGIN mgmt_target.set_agent_tzrgn('Unicom:1830','Asia/Shanghai'); END;*
第 1 行出现错误:
ORA-20233: Invalid agent name Unicom:1830
ORA-06512: 在 "SYSMAN.MGMT_TARGET", line 3683
ORA-06512: 在 line 1已经困扰我四天了,拜求大师帮忙看看,给些意见,谢谢。

解决方案 »

  1.   

    我是因为修改计算机名称导致Oracle不能用,进行了以下的配置,之后就好了。希望对你有用
    Oracle 安装好后 hostname是不能乱改的.How to change the Hostname of the Windows when the10Gwith ASM being used  
    Solution  
    When changing the Hostname, 4 files would be affected.  
    1) Tnsnames.ora  
    2) listener.ora  
    3) Oraclecsservice  
    4) Enterprise Manager 1、D:\oracle\product\10.2.0\db_1目录下的 原计算机名.orcl------>修改后的计算机名.orcl2、D:\oracle\product\10.2.0\db_1\oc4j\j2ee目录下的 OC4J_DBConsole_原计算机名_orcl----->OC4J_DBConsole_修改后的计算机名_orcl3、D:\oracle\product\10.2.0\db_1\NETWORK\ADMIN目录下的 listener.ora、sqlnet.ora、tnsnames.ora文件中的local名称4、配置em
    /*重新配置dbcosole
    emca -repos drop
    emca -repos create
    emca -config dbcontrol db
    emctl start dbconsole
    */   基本上是删不干净的,所以使用下面的方法当安装oracle的机器变了机器名,或者变了ip地址。那么原来的dbconsole就起不来了。当在dos下运行:emctl start dbconsole 的时候报错。
    解决办法
     
    同样适用于windows,unix,linux其他原因导致DBCONSOLE无法正常启动。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.C:Documents and SettingsAdministrator>emca -config dbcontrol db -repos recreat
    e -HOST wanglibo
     
    具体步骤如下:
    Microsoft Windows XP [版本 5.1.2600]
    (C) 版权所有 1985-2001 Microsoft Corp.
    C:Documents and SettingsAdministrator>emca -config dbcontrol db -repos recreat
    e -HOST wanglibo
    希望对你有帮助
      

  2.   

    问题代码:
    Microsoft Windows [版本 6.1.7600]
    版权所有 (c) 2009 Microsoft Corporation。保留所有权利。
    C:\Users\Administrator>hostname
    ggsjy
    C:\Users\Administrator>emctl start dbconsole
    Environment variable ORACLE_SID not defined. Please define it.
    C:\Users\Administrator>set ORACLE_SID=orcl
    C:\Users\Administrator>emctl start dbconsole
    OC4J Configuration issue. D:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole
    _172.24.34.191_orcl not found.
    C:\Users\Administrator>emctl start dbconsole
    Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
    Copyright (c) 1996, 2006 Oracle Corporation. All rights reserved.
    http://WIN-LOSGI0TCOG0:1158/em/console/aboutApplication
    Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoleorcl
    服务正在启动 .
    OracleDBConsoleorcl 服务无法启动。
    系统出错。
    发生系统错误 3。
    系统找不到指定的路径。
    -----------------------------------------------------------------------------------
    解决方案:
    C:\Users\Administrator>sqlplus /nolog
    SQL*Plus: Release 10.2.0.3.0 - Production on 星期五 9月 24 18:29:07 2010
    Copyright (c) 1982, 2006, Oracle. All Rights Reserved.
    SQL> conn sys as sysdba
    输入口令:
    已连接。
    SQL> drop public synonym setemviewusercontext;
    同义词已删除。
    SQL> drop public synonym mgmt_target_blackouts;
    同义词已删除。
    SQL> drop role mgmt_user;
    角色已删除。
    SQL> drop user mgmt_view cascade;
    用户已删除。
    SQL> drop user sysman cascade;
    用户已删除。
    SQL> exit
    从 Oracle Database 10g Enterprise Edition Release 10.2.0.3.0 - Production
    With the Partitioning, OLAP and Data Mining options 断开
    C:\Users\Administrator>emca -config dbcontrol db -repos create
    EMCA 开始于 2010-9-24 20:10:10
    EM Configuration Assistant, 10.2.0.1.0 正式版
    版权所有 (c) 2003, 2005, Oracle。保留所有权利。
    输入以下信息:
    数据库 SID: orcl
    已为数据库 orcl 配置了 Database Control
    您已选择配置 Database Control, 以便管理数据库 orcl
    此操作将移去现有配置和默认设置, 并重新执行配置
    是否继续? [yes(Y)/no(N)]: y
    监听程序端口号: 1521
    SYS 用户的口令:
    DBSNMP 用户的口令:
    SYSMAN 用户的口令:
    SYSMAN 用户的口令: 通知的电子邮件地址 (可选):
    通知的发件 (SMTP) 服务器 (可选):
    -----------------------------------------------------------------
    已指定以下设置
    数据库 ORACLE_HOME ................ D:\oracle\product\10.2.0\db_1
    数据库主机名 ................ ggsjy
    监听程序端口号 ................ 1521
    数据库 SID ................ orcl
    通知的电子邮件地址 ...............
    通知的发件 (SMTP) 服务器 ...............
    -----------------------------------------------------------------
    是否继续? [yes(Y)/no(N)]: y
    2010-9-24 20:11:21 oracle.sysman.emcp.EMConfig perform
    信息: 正在将此操作记录到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
    a_2010-09-24_08-10-10-下午.log。
    2010-9-24 20:11:30 oracle.sysman.emcp.util.DBControlUtil stopOMS
    信息: 正在停止 Database Control (此操作可能需要一段时间)...
    2010-9-24 20:11:35 oracle.sysman.emcp.EMReposConfig createRepository
    信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
    2010-9-24 20:13:36 oracle.sysman.emcp.EMReposConfig invoke
    信息: 已成功创建资料档案库
    2010-9-24 20:13:47 oracle.sysman.emcp.util.DBControlUtil startOMS
    信息: 正在启动 Database Control (此操作可能需要一段时间)...
    2010-9-24 20:14:27 oracle.sysman.emcp.EMDBPostConfig performConfiguration
    信息: 已成功启动 Database Control
    2010-9-24 20:14:27 oracle.sysman.emcp.EMDBPostConfig performConfiguration
    信息: >>>>>>>>>>> Database Control URL 为 http://ggsjy:1158/em <<<<<<<<<<<
    已成功完成 Enterprise Manager 的配置
    EMCA 结束于 2010-9-24 20:14:27
    C:\Users\Administrator>emctl status dbconsole
    Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
    Copyright (c) 1996, 2006 Oracle Corporation.  All rights reserved.
    http://ggsjy:1158/em/console/aboutApplication
    Oracle Enterprise Manager 10g is running.
    ------------------------------------------------------------------
    Logs are generated in directory D:\oracle\product\10.2.0\db_1/ggsjy_orcl/sysman/
    log
    -----------------------------------------------------------------------------------
    总结:
    Oracle emca dbconsole手动创建步骤:
    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 
    根据提示,先输入SID,再输入Y继续; 
    输入端口1521,输入SYS密码,输入DBSNMP密码,输入SYSMAN 密码,输入Y继续 
    -------------------------------------------
    常用emca配置命令:
    OEM常用的命令,及实例步骤. ­
    创建一个EM资料库 ­
    emca -repos create ­
    重建一个EM资料库 ­
    emca -repos recreate ­
    删除一个EM资料库 ­
    emca -repos drop ­
    配置数据库的Database Control ­
    emca -config dbcontrol db ­
    删除数据库的Database Control配置 ­
    emca -deconfig dbcontrol db ­
    重新配置db control的端口,默认端口在1158 ­
    emca -reconfig ports ­
    emca -reconfig ports -dbcontrol_http_port 1160 ­
    emca -reconfig ports -agent_port 3940 ­
    先设置ORACLE_SID环境变量后,启动EM console服务 ­
    emctl start dbconsole ­
    先设置ORACLE_SID环境变量后,停止EM console服务 ­
    emctl stop dbconsole ­
    先设置ORACLE_SID环境变量后,查看EM console服务的状态 ­
    emctl status dbconsole ­
    配置dbconsole的步骤 ­
    emca -repos create ­
    emca -config dbcontrol db ­
    emctl start dbconsole ­
    重新配置dbconsole的步骤 ­
    emca -repos drop ­
    emca -repos create ­
    emca -config dbcontrol db ­
    emctl start dbconsole ­
      

  3.   

    感谢楼上两位,这个操作,我之前好像也已经做过了,当时查的那个文档甚至要求我把¥oracle_home 下面hostname_sid目录都删除了。可是还是不行。
    一下是当时查考的资料:
    This fixed my em problem.1. Remove the following registry entry :
    FROM HKEY_LOCAL_MACHINE/SYSTEM/CURRENTCONTROLSET/SERVICES/ORACLEDBCONSOLE<SID>
    After this reboot the machine.Make sure that the database and the listener is up and running.2. Logon SQLPLUS as user SYS and drop the sysman account and mangement objects:a. drop user sysman cascade;
    b. drop role MGMT_USER;
    c. drop user MGMT_VIEW cascade;
    d. drop public synonym MGMT_TARGET_BLACKOUTS;
    e. drop public synonym SETEMVIEWUSERCONTEXT;3. Manually remove the following folders, if it exist:
    ORACLE_HOME/host_sid
    ORACLE_HOME\oc4j\j2ee\OC4J_DBConsole_host_sid4.Set the ORACLE_HOME and ORACLE_SID. Now from ORACLE_HOME/bin issue the following command:
    emca -config dbcontrol db -repos createHope it helps.不过在仔细对比以后发现在sql中删除用户的操作似乎有些差别,所以我刚刚也照3楼的操作去做了,还是不行。还是老样子的报错。
      

  4.   

    我的提示跟你的差不多,后我做了如下操作可以完成,希望对你有帮助 !
    SQL> exec mgmt_target.set_agent_tzrgn('ken-pc:3938','Asia/Chungking')
    BEGIN mgmt_target.set_agent_tzrgn('ken-pc:3938','Asia/Chungking'); END;*
    第 1 行出现错误:
    ORA-20233: Invalid agent name ken-pc:3938
    ORA-06512: 在 "SYSMAN.MGMT_TARGET", line 3683
    ORA-06512: 在 line 1
    SQL> select target_name from mgmt_targets where target_type='oracle_emd';TARGET_NAME
    --------------------------------------------------------------------------------
    Ken-PC:3938SQL>  exec mgmt_target.set_agent_tzrgn('Ken-PC:3938','Asia/Chungking')PL/SQL 过程已成功完成。SQL> commit;提交完成。