不知道因为什么原因,我的db console 服务无法启动,EM打不开,于是就参考网上的资料重建了。这里整理一点比较好的网页,留作参考。


一、重建
   1 先删除EM,
             1。1 删除如下表和视图或角色,这些都和EM相关的,如果不删除,重新安装EM时会提示这些用户或角色已存在,从而停止安装。
          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;
                      用户已删除。
     
       1.2 删除EM
           C:\Documents and Settings\ryan>emca -deconfig dbcontrol db -repos drop        EMCA 开始于 2009-2-20 12:43:37
        EM Configuration Assistant 10.2.0.1.0 正式版
     版权所有 (c) 2003, 2005, Oracle。保留所有权利。    输入以下信息:
        数据库 SID: orcl
        监听程序端口号: 1521
        SYS 用户的口令:
       SYSMAN 用户的口令:     是否继续? [yes(Y)/no(N)]: y
      2009-2-20 12:43:50 oracle.sysman.emcp.EMConfig perform
      信息: 正在将此操作记录到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
      a_2009-02-20_12-43-37-下午.log。
    2009-2-20 12:43:52 oracle.sysman.emcp.util.DBControlUtil stopOMS
      信息: 正在停止 Database Control (此操作可能需要一段时间)...
      2009-2-20 12:43:52 oracle.sysman.emcp.EMReposConfig stopDBMSJobs
     警告: 初始化 SQL 连接时出错。无法执行 SQL 操作
    2009-2-20 12:43:52 oracle.sysman.emcp.EMReposConfig invoke
     警告: 无法移去 DBMS 作业。
    2009-2-20 12:43:52 oracle.sysman.emcp.EMReposConfig dropRepository
     信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
    2009-2-20 12:43:58 oracle.sysman.emcp.EMReposConfig invoke
    信息: 已成功删除资料档案库
 已成功完成 Enterprise Manager 的配置
 EMCA 结束于 2009-2-20 12:43:58OK,删除之后,在重新安装EM,这样和EM相关的用户程序都会安装 
2 安装
 C:\Documents and Settings\ryan>emca -config dbcontrol db -repos create
EMCA 开始于 2009-2-20 12:49:40
 EM Configuration Assistant 10.2.0.1.0 正式版
 版权所有 (c) 2003, 2005, Oracle。保留所有权利。输入以下信息:
 数据库 SID: orcl
 监听程序端口号: 1521
 SYS 用户的口令:
 DBSNMP 用户的口令:
 SYSMAN 用户的口令:
 通知的电子邮件地址 (可选):
 通知的发件 (SMTP) 服务器 (可选):
 -----------------------------------------------------------------已指定以下设置
数据库 ORACLE_HOME ................ D:\oracle\product\10.2.0\db_1
数据库主机名 ................ 10.88.122.141
 监听程序端口号 ................ 1521
 数据库 SID ................ orcl
 通知的电子邮件地址 ...............
 通知的发件 (SMTP) 服务器 ...............-----------------------------------------------------------------
 是否继续? [yes(Y)/no(N)]: y
 2009-2-20 12:51:08 oracle.sysman.emcp.EMConfig perform
 信息: 正在将此操作记录到 D:\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\emc
 a_2009-02-20_12-49-40-下午.log。
 2009-2-20 12:51:12 oracle.sysman.emcp.EMReposConfig createRepository
 信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
 2009-2-20 12:54:33 oracle.sysman.emcp.EMReposConfig invoke
 信息: 已成功创建资料档案库
 2009-2-20 12:54:52 oracle.sysman.emcp.util.DBControlUtil startOMS
 信息: 正在启动 Database Control (此操作可能需要一段时间)...
 2009-2-20 12:56:02 oracle.sysman.emcp.EMDBPostConfig performConfiguration
 信息: 已成功启动 Database Control
 2009-2-20 12:56:02 oracle.sysman.emcp.EMDBPostConfig performConfiguration
 警告: 无法创建 Database Control 快捷方式
 2009-2-20 12:56:02 oracle.sysman.emcp.EMDBPostConfig performConfiguration
 信息: >>>>>>>>>>> Database Control URL 为<<<<<<<<<
 <<
 已成功完成 Enterprise Manager 的配置也可以用dbca 建oem
 二、EM打不开解决方案参考
##http://space.itpub.net/12216142/viewspace-616809  
不久前重装了操作系统并重新安装了oracle,刚开始安装好之后
 OEM(Oracle Enterprise Manager)可以正常打开在打开OEM的网页控制台,实际上很多人也都会遇到在刚安装好的时候可以打开,但是在之后(可能是重启了电脑或者是隔了几天)可能就会出现无法打开网页控制台的情况。 今天我也遇到了无法打开的情况,在经过一番摸索之后恍然大悟。
 首先用命令方式打开控制台C:\Documents and Settings\Administrator>set oracle_sid=demo
C:\Documents and Settings\Administrator>emctl start dbconsole   
 OC4J Configuration issue. D:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole
 _localhost_demo not found. 
C:\Documents and Settings\Administrator>emctl status
 EM Configuration issue. D:\oracle\product\10.2.0\db_1/localhost_demo not found.
  
  
      
  
  
 可以看到提示说OC4J_DBConsole _localhost_demo not found. 
 进入相关目录查看,发现的是一个以机器名称+ORACLE_SID的文件夹,
 D:\oracle\product\10.2.0\db_1\oc4j\j2ee\OC4J_DBConsole_informat-815891_demo
 而并没有OC4J_DBConsole _localhost_demo这个名称的文件夹,同时查看状态当中提示的文件路径,我这里只有informat-815891_demo,informat-815891是我的计算机名称,demo是我安装时设定的oracle的SID,并没有localhost_demo的文件夹,就是因为如此造成控制台无法打开,可为什么OEM会选择以localhost来作为他默认的路径?而刚开始安装好的时候,没有这种情况呢?  这个问题先暂时放一放,我先给出我的解决办法:首先添加了一个虚拟网卡
控制面板→添加硬件→选择(是,我已经连接了此硬件)→添加新的硬件设备→安装我手动从列表选择的硬件(高级)→网络适配器→Microsoft→Microsoft Loopback Adapter      
 安装好了虚拟网卡,手动指定IP地址: 10.10.10.1  子网掩码 255.255.255.0  默认网关 10.10.10.0
 然后开始→运行 输入 system32 这样快捷的打开system32文件夹,找到drivers\etc\hosts文件,以文本文件打开后,进行修改
 10.10.10.1       localhost#127.0.0.1       localhost 
 
将127屏蔽掉或者删除掉也可以, 并且将localhost改成虚拟网卡的IP地址,保存,再次以命令行形式打开OEM控制台
 C:\Documents and Settings\Administrator>emctl start dbconsole
 OC4J Configuration issue.
 D:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole_10.10.10.1_demo not found. 
 这次就提示一个新的文件夹名称不存在了,这个时候我再次修改了hosts文件
 10.10.10.1       informat-815891
 #127.0.0.1       localhost 
 用机器名称替换掉localhost,然后再次打开OEM控制台
 C:\Documents and Settings\Administrator>emctl start dbconsole
 Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0Copyright (c) 1996, 2005 Oracle Corporation.  All rights reserved.
http://informat-815891:1158/em/console/aboutApplicationStarting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoledemo
 服务正在启动 ...................
 OracleDBConsoledemo 服务已经启动成功。 
 这个时候想必大家都清楚了oracle OEM是通过这个hosts文件来确定文件的名称,那么有的人安装好的oracle里面的文件夹是localhost+SID,有的是machine+SID,这又是什么原因呢? 在这里要告诉大家一个前提OEM控制台无法启动是由于hosts错误的指引了Oracle OEM,但是hosts为什么会错误的指引oracle OEM呢? 就是因为你在安装的时候的环境和当前的环境发生了变化造成的,假如你安装的时候没有网络环境,完成之后OEM的文件夹名称就是localhost+SID,而如果有网络环境的话则会是machine+SID的文件名称,而之后网络环境发生了变化,则出现了无法启动,当然也就无法打开OEM控制台的页面了,我这里使用了虚拟的网卡 并且在hosts里面指定了虚拟的地址,这样一来不管我的网络是否连接都不会对OEM的启动和页面查看造成影响。 the end.
 后记:windows 7下要想创建一个Microsoft Loopback Adapter用xp下的方法已经不行了,可以改用在 开始=>运行中输入“hdwwiz.exe”来运行添加向导。 
补充:如果提示ORACLE_SID未定义,则可直接  set oracle_sid=orcl  设置
有时候可能是对机器做了一些修改,hosts文件没有重新配置导致错误,所以可以坚持一下hosts文件的配置
XP下路径:C:\WINDOWS\system32\drivers\etc
 
三、常用命令
创建一个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