日期:2014-05-16 浏览次数:20689 次
一 启动电脑,到登陆界面,电脑报有个服务启动失败,电脑没有新装软件,周六还没有问题,怎么突然报这个错误?于是到事件查看器中看看什么问题,显示是OracleDBConsoleorcl启动失败,到服务里一看,确实没有启动。手动启动一下,报错误码2 我装的是10g,于是到ORACLEproduct10.2.0db_1test_orclsysmanlog目录看一下log里写了什么,打开OracleDBConsoleorclsrvc.log. log最后记录的是: ————– [OracleDBConsoleorcl] ———— EMDROOT=c:oracleproduct10.2.0db_1 ORACLE_HOME=c:oracleproduct10.2.0db_1 EMDSTATE=c:oracleproduct10.2.0db_1wangzh_orcl CONSOLE_CFG=dbconsole TRACE_LEVEL=16 TIMEOUT=15 12/10/07 10:56:03 Start pending… 12/10/07 10:56:03 Verifying dbconsole is not started already. Command line "c:oracleproduct10.2.0db_1binemctl.bat" istatus dbconsole 12/10/07 10:56:04 dbconsole launch commandline is "c:oracleproduct10.2.0db_1binemctl.bat" istart dbconsole 12/10/07 10:56:04 Tracking process launch… 12/10/07 10:56:34 dbconsole exited with retCode 2. 12/10/07 10:56:34 Check c:oracleproduct10.2.0db_1test_orclsysmanlogemdbconsole.nohup for details 日志让看emdbconsole.nohup文件,目录里没有这个文件呀。 手动执行一下emctl.bat,于是启动控制台,执行emctl.bat istart dbconsole,报错,ORACLE_SID没有定义,打开emctl.bat看看,这里是定义环境变量的地方,其中已经设置了这些: if not defined REMOTE_EMDROOT (set ORACLE_HOME=Ec:oracleproduct10.2.0db_1) if not defined REMOTE_EMDROOT (set EMDROOT=%ORACLE_HOME%) if defined REMOTE_EMDROOT (set ORACLE_HOME=%REMOTE_EMDROOT%) if defined REMOTE_EMDROOT (set EMDROOT=%ORACLE_HOME%) if defined REMOTE_EMDROOT (set LOCAL_EMDROOT=c:oracleproduct10.2.0db_1) …… 后边还有一条设置: if not defined DBCONSOLE_SERVICE_NAME (set DBCONSOLE_SERVICE_NAME=OracleDBConsole%ORACLE_SID%),用到了ORACLE_SID,但没有看到前面设置,只能手动设置ORACLE_SID试试,于是加了一条设置: if defined REMOTE_EMDROOT (set ORACLE_SID=orcl) orcl是我的数据库实例名 到服务中启动OracleDBConsoleorcl,ok,没有报错; 重新启动计算机,也没有报错,OracleDBConsoleorcl服务也启动了。 二 今天机器死机了,然后OracleDBConsoleORCL服务就起不来了,在一阵瞎搞后,还终于被我找到了解决办法,方法如下: 运行Database Configuration Assistant程序,选择“配置数据库选项”重新配置Database Control 配置工具,配置完后端口号会变(我原来是1158,后来被改为5500),可以在.\oracle\product\10.2.0\db_1\cfgtoollogs\emca\orcl\文件夹下,最后生成的一个日志文件下找到新的Database Control 的URL;运行即可。 ******************************************************************************************************** (原来经常改IP会导致OracleDBConsoleORCL无法启动,)一下是正规的解决方案: 修改你的主机参数文件 修改一下: C:\WINDOWS\system32\drivers\etc下的host文件. 如果没有的话就自己加一个IP和你的计算机名对应,如果已有了就把你的IP地址和你的计算机名对应起来. 如: # copyright (c) 1993-1999 microsoft corp. # # this is a sample hosts file used by microsoft tcp/ip for windows. # # this file contains the mappings of ip addresses to host names. each # entry should be kept on an individual line. the ip address should # be placed in the first column followed by the corresponding host name. # the ip address and the host name should be separated by at least one # space. # # additionally, comments (such as these) may be inserted on individual # lines or following the machine name denoted by a '#' symbol. # # for example: # # 102.54.94.97 rhino.acme.com # source server # 38.25.63.10 x.acme.com # x client host 127.0.0.1 localhost 192.168.1.104 wang-decjedi4h9 三 手工从cmd命令行启动:C:\Documents and Settings\wangnc>emctl start dbconsole Environment variable ORACLE_SID not defined. Please define it. 设置Oracle_sid环境变量: C:\Documents and Settings\wangnc>set oracle_sid=orcl C:\Documents and Settings\wangnc>emctl start dbconsole OC4J Configuration issue. C:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole_WWW-D79AC60CC61_orcl_orcl not found. 还是不行,到目录 C:\oracle\product\10.2.0\db_1\oc4j\j2ee 下发现只有OC4J_DBConsole_localhost_orcl目录,并没有OC4J_DBConsole_sz-wangncD.cn.linecom.com_orcl这样的目录 复制目录改成系统提示的文件夹名,再运行emctl start dbconsole 又会报一个类似的错误提示,另一个目录,同样处理。重启后服务终于可以正常启动了。 访问 http://127.0.0.1:1158/em/ ok! 四 OracleDBConsoleorcl 服务无法启动 C:>set oracle_sid=orcl C:>emctl start dbconsole Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0 Copyright (c) 1996, 2005 Oracle C