被这个OracleDBconsole服务无法启动的问题折磨了两个星期了,今天很幸运,在网上无意间看到了一位大侠的思路,虽然错误的情况并不完全相同,但他的思路完全可以搬过来用。
环境:Windows XP, 装Oracle 11g,装完数据库软件、新建一个数据库(数据库的SID为orcl20120825),但是无法进入网页版的企业管理器(EM),提示是“403,服务器拒绝了您的访问请求”。因为数据库的ID是orcl20120825,因此对应的Windows服务名为OracleDbConsoleorcl20120825,原因不多说了,想必遇到过这个问题的朋友都知道,就是这个服务没有启动,所以进不了企业管理器。尝试启动这个服务,提示“Windows 不能在 本地计算机 启动 OracleDBConsoleorcl。有关更多信息,查阅系统事件日志。如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 2。”
至于具体的原因,网上有很多人讨论,大概是计算机名改变、IP地址更改等情况,就不分别讨论了。具体的出错原因,只有计算机自己才能回答,所以,还是先问cmd吧~
       那就在cmd中启动企业管理器试试吧:
       1.C:\Documents and Settings\Administrator>emctl start dbconsole
        这是启动控制台的命令,它当然报错:
        Environment variable ORACLE_UNQNAME not defined. Please set ORACLE_UNQNAME to database unique name.
虽然并不十分清楚,但可以肯定的是,不能启动的原因一定和ID、SID之类的变量有关,也许是数据库的名称,也许是计算机的名称,也许是某个文件的名称。继续~
       2.既然cmd说要给数据库设置一个ORACLE_UNQNAME,于是在网上搜了一下,大概是这个命令:
         C:\Documents and Settings\Administrator>set ORACLE_UNQNAME=orcl20120825
         敲了回车没反应,额,,,于是再敲个分号,,,
         C:\Documents and Settings\Administrator>;
         还是没反应,,,算了,就当是已经设置过了吧,那么再尝试着启动一下企业管理器:
         C:\Documents and Settings\Administrator>emctl start dbconsole
         继续报错,不过这次的内容具体一点了:
         OC4J Configuration issue. E:\app\Administrator\product\11.2.0\dbhome_1/oc4j/j2ee /OC4J_DBConsole_180.111.140.106_orcl20120825 not found.
         很显然,是因为Oracle找不到提示的这个文件或文件夹而报错。那么理所当然得,可以去提示中给出的目录看一看,如下图:

果然,在这个目录下并没有OC4J_DBConsole_180.111.140.106_orcl20120825这个文件夹或者文件。但是,注意到该目录下有一个和提示中的文件名非常相似的文件夹
OC4J_DBConsole_localhost_orcl20120825,只有中间的部分不同。到这一步,情况开始明朗了。
很显然,180.111.140.106看上去是个外网地址,似乎是出现在动态分配IP的情况下,可以验证一下,重新开一个cmd,>ipconfig,如下图:

果然,这是个动态分配的本机IP地址。而上文目录中的OC4J_DBConsole_localhost_orcl20120825文件夹,中间的localhost也代表了本机,到这一步,基本可以得出EM不能启动的原因了,大概是因为Oracle默认会用localhost去标识一些变量或文件,但是在后来的某个操作中,因为电脑已经处在连上外网的状态,因此有了一个动态的IP,于是Oracle改用这个动态IP去标识一些变量或者文件,所以就造成了一些有关联的文件或者系统设置出现了文件名前后不一致的问题。
故障原因找到了,接下来开始解决。这里就要借用那位大侠的思路了:
       1.根据以往在Windows下折腾的经验,可以猜测OC4J_DBConsole_localhost_orcl20120825文件夹和OC4J_DBConsole_180.111.140.106_orcl20120825文件夹中的内容是一样的,只是文件夹的名称不同而已。那既然提示说要找这个名字的文件夹,那是不是可以直接把OC4J_DBConsole_localhost_orcl20120825文件夹重命名,把它文件名中的localhost改成180.111.140.106呢?也许可以,但为了保险起见,还是先复制一份,再重命名。如下图:

于是,该目录下就有了名为OC4J_DBConsole_180.111.140.106_orcl20120825的文件夹。接下来,在cmd中继续执行上一次的命令,尝试启动EM

C:\Documents and Settings\Administrator>emctl start dbconsole
虽然还是报错,并且和上一个报错信息很相似:
EM Configuration issue. E:\app\Administrator\product\11.2.0\dbhome_1/180.111.140.106_orcl20120825 not found.
同样是提示在某路径下找不到某文件的提示,那么重复上一步的做法,到这次提示的目录中去看一下,如下图:

同样地,在这个目录下果然没有提示中的180.111.140.106_orcl20120825文件夹,但是又出现了一个文件名极其相似的文件夹:localhost_orcl20120825,很显然也是前文所说的IP地址改变造成的文件命名前后不一致的原因。复制上一步的思路,猜测180.111.140.106_orcl20120825文件夹中的内容和localhost_orcl20120825中的内容是一样的,于是复制一个localhost_orcl20120825文件夹并重命名为180.111.140.106_orcl20120825,如下图:

于是,该目录下就有了名为180.111.140.106_orcl20120825的文件夹。接下来,在cmd中继续执行上一次的命令,尝试启动EM:
C:\Documents and Settings\Administrator>emctl start dbconsole
虽然还是报错,并且和上一个报错信息很相似:
Unable to determine local host vide E:\app\Administrator\product\11.2.0\dbhome_1/180.111.140.106_orcl20120825/sysman/config/emd.properties : No such file or directory
这次的提示更具体了,是在指定的目录下找不到指定的文件。那么,重复上一步的做法,到提示中给出的目录下去看一看,如下图:

这次情况稍微有点小复杂,180.111.140.106_orcl20120825/sysman/目录下只有一个opmn文件夹,并没有提示中的config文件夹,也没有和“config”名称相似的文件夹,怎么办呢?
举一反三!既然上文猜测180.111.140.106_orcl20120825文件夹和localhost_orcl20120825文件夹中的内容一致,那么自然而然就可以想到回上一步的localhost_orcl20120825文件夹中去看一看:如下图:

在localhost_orcl20120825中的sysman目录下,可以看到其实里面的内容和180.111.140.106_orcl20120825下sysman目录中的内容并不相同,但两者都有一个opmn文件夹,并且localhost_orcl20120825\sysman目录下多了四个文件夹,并且其中一个名为config,而上一步报错提示的路径中就有config目录,并且这个config文件夹中就有一个和上一步报错提示中同名的emd.properties的文件,于是类似地重复之前的思路,把localhost_orcl20120825\sysman目录下的config、emd、log、recv复制到180.111.140.106_orcl20120825\sysman目录下(因为opmn文件夹还不知道有什么用处,所以先不动它)。这样,180.111.140.106_orcl20120825\sysman下的目录结构就和localhost_orcl20120825\sysman下的目录结构相同了,如下图:

接下来,在cmd中继续执行上一次的命令,尝试启动EM:
C:\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://localhost:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 11g Database Control ...OracleDBConsoleorcl20
120825 服务正在启动 ...............................................
OracleDBConsoleorcl20120825 服务已经启动成功。
启动了!
再去Windows服务中看一下:

这个服务果然启动了!
不放心,再用浏览器进EM试试:


↓↓↓

↓↓↓

至此,解决了一块长久以来的心病!

OracleDBconsoleorcl服务无法启动的原因及解决思路的更多相关文章

  1. OracleDBConsoleorcl 服务无法启动:Agent process exited abnormally during initialization.

    OracleDBConsoleorcl 服务无法启动 在事件查看器里看到 Agent process exited abnormally during initialization.的记录.知道是因为 ...

  2. installshield制作的安装包卸载时提示重启动的原因以及解决办法

    原文:installshield制作的安装包卸载时提示重启动的原因以及解决办法 有时候卸载installshield制作的安装包程序,卸载完会提示是否重启电脑以完成所有卸载,产生这个提示的常见原因有如 ...

  3. S​Q​L​ ​S​e​r​v​e​r​ ​服务无法启动,错误1069解决办法

    刚刚接到公司服务器上的SQL Server服务无法启动的问题需要解决,在进入“SQL Server 配置管理器”启动MSSQLServer 服务时,启动过程异常缓慢预示着“异常”的存在.果然,系统给出 ...

  4. 安装ORACLE后,改变计算机名称,导致OracleDBConsoleOrcl服务无法启动

    错误信息: 启动oracledbconsoleorcl 服务提示 -- “--Windows不能再本地计算机启动oracledbconsoleorcl  有关更多信息,查阅系统事件日志,如果这是非Mi ...

  5. CentOS7下MySQL服务启动失败原因及解决方法

    在重启阿里的CentOS7服务器后,重启MySQL 出现错误 Starting mysqld (via systemctl): Job for mysqld.service failed becaus ...

  6. Docker无法正常启动的原因及解决办法

    一.Docker启动异常表现: 1.状态反复restaring,用命令查看 $docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS ...

  7. apple mobile device服务无法启动,错误1053 解决

    我不想安装iTunes,于是下了iTunes64安装包,解压后得到6个文件 安装完 AppleMobileDeviceSupport64.msi 发现服务启动不起来,提示错误1053,网上搜了下发现出 ...

  8. 使用net start mysql的时候出现服务名无效的原因及解决办法

    原因:mysql服务没有安装 解决办法:使用管理员权限,执行mysqld -install命令 然后以管理员身份net start mysql开启mysql服务 卸载mysql服务的方法 1.管理员权 ...

  9. tomcat8启动慢原因及解决办法

    tomcat8在linux下安装使用一段时间后启动非常慢,6分钟左右. 原因是一个随机数生成参数导致的. 处理如下: 修改catalina.sh .配置JRE使用非阻塞的Entropy Source ...

随机推荐

  1. springMVC整理05--数据校验、格式化 & 其他注解 & 数据绑定流程

    1.  数据校验.数据格式化 参考博客 http://www.importnew.com/19477.html 1.1  数据校验 使用 spring 数据校验,先要导入校验器的 jar: <! ...

  2. Django+Xadmin打造在线教育系统(六)

    讲师相关功能实现 拷贝并修改teacher-list.html和teacher-detail.html, 继承base模板 # 讲师列表 path('teacher_list/', TeacherLi ...

  3. jwt实现

    <?phpnamespace app\admin\controller;use think\Config;use think\Controller;use think\Request;use t ...

  4. hiho1255 Mysterious Antiques in Sackler Museum

    题目链接:http://media.hihocoder.com/contests/icpcbeijing2015/problems.pdf 题目大意:给你四个矩形,判断是否能取其中任意三个组成一个大矩 ...

  5. [ZJOI2015]地震后的幻想乡(期望+dp)

    题目描述 傲娇少女幽香是一个很萌很萌的妹子,而且她非常非常地有爱心,很喜欢为幻想乡的人们做一些自己力所能及的事情来帮助他们. 这不,幻想乡突然发生了地震,所有的道路都崩塌了.现在的首要任务是尽快让幻想 ...

  6. 【算法】php计算出丑数

    丑数描述 把只包含因子2,3,5的正整数被称作丑数,比如4,10,12都是丑数,而7,23,111则不是丑数. 判断方法    首先除2,直到不能整除为止,然后除5到不能整除为止,然后除3直到不能整除 ...

  7. nio再学习之通道channel

    通道(Channel):用于在数据传输过程中,进行输入输出的通道,其与(流)Stream不一样,流是单向的,在BIO中我们分为输入流,输出流,但是在通道中其又具有读的功能也具有写的功能或者两者同时进行 ...

  8. 第一次有人把5G讲的这么简单明了

    第一次有人把5G讲的这么简单明了 鲜枣课堂 纯洁的微笑 今天 关于5G通信,常见的文章都讲的晦涩难懂,不忍往下看,特转载一篇,用大白话实现5G入门. 简单说,5G就是第五代通信技术,主要特点是波长为毫 ...

  9. java 遍历方法 及 数组,ArrayList,HashMap,HashSet的遍历

    一,遍历方法的实现原理 1.传统的for循环遍历,基于计数器的: 遍历者自己在集合外部维护一个计数器,然后依次读取每一个位置的元素,当读取到最后一个元素后,停止.主要就是需要按元素的位置来读取元素. ...

  10. QML学习笔记(五)— 做一个简单的待做事项列表

    做一个简单的QML待做事项列表,能够动态添加和删除和编辑数据 GitHub:八至 作者:狐狸家的鱼 本文链接:QML学习笔记(五)— 做一个待做事项列表 主要用到QML:ListView 效果 全部代 ...