最近安装10G,遇到了修改IP之后服务起不来的情况,在网上找了一些文章,对解决问题很有指导意义.
---------------------------------------------------------------------------------------
LOG1:
在c:/windows/system32/drivers/etc 文件夹中找到HOST文件,在最后加入
192.168.?.?(你自己目前IP) localhost
---------------------------------------------------------------------------------------
LOG2:
OracleDBConsole[SID]服务简介
OracleDBConsole[SID]服务负责Windows平台下启动Oracle企业管理器,从Oracle 10g开始引入这个服务,也是从Oracle 10g开始,Oracle的企业管理器从客户端形式变为浏览器操作模式,这里的[SID]即Oracle SID,如果是默认安装就是orcl,故这个服务在你的机器上可能就是OracleDBConsoleORCL,事实上在我的机器上也是它。
本文基于Oracle 11g,操作系统为Windows xp,故本文描述的解决办法仅供参考。
故障描述
在一次正常使用企业管理器后,重新启动计算机,再次启动OracleDBConsoleORCL服务时,报:
Windows 不能在 本地计算机 启动 OracleDBConsoleORCL。有关更多信息,查阅系统事件日志。如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 1。
在应用程序事件日志中记录了如下错误信息:
Process exited abnormally during initialization.
解决过程
尝试从命令行下启动该服务,也以失败告终,正寻思着是否删除数据库再重新安装,突然想起Oracle企业管理器其实是一个单独的组件,可以将其单独删除,再重新安装的,其实这里并不是删除Oracle企业管理器,而是Oracle数据库控制台资料档案库,删除资料档案库会同时删除OracleDBConsoleORCL服务,并删除用户SYSMAN及其所属对象,重新创建资料档案库就会重新添加OracleDBConsoleORCL服务,并创建SYSMAN用户及其所属对象。搞清楚这一点关系后,开始动手实施修复。
首先删除资料档案库,注意此时Oracle的监听器服务和数据库服务必须处于启动状态,因为删除命令会连接到数据库删除SYSMAN用户及其所属对象:
C:/>emca -repos drop
EMCA 开始于 2009-1-31 9:13:24
EM Configuration Assistant, 11.1.0.5.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: orcl
监听程序端口号: 1521
SYS 用户的口令:【输入SYS用户的口令,输入口令时屏幕不会回显】
SYSMAN 用户的口令:【输入SYSMAN用户的口令】
SYSMAN 用户的口令:
是否继续? [是(Y)/否(N)]: y
2009-1-31 9:15:04 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 c:/app/Administrator/cfgtoollogs/emca/orcl/emca_2009_01
_31_09_13_24.log。
2009-1-31 9:15:05 oracle.sysman.emcp.EMReposConfig invoke
信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
开始等待删除,这个过程可能比较长,来杯咖啡,休息休息吧。
删除结束后,往往有人会想到使用命令重新创建资料档案库,但经过我多次尝试,使用这种办法创建好资料档案库后,OracleDBConsoleORCL服务仍然无法启动,企业管理器依旧无法使用,于是想到使用dbca来创建,于是在运行窗口输入:dbca,启动数据库配置助手,在第一步时选择“配置数据库选件”,后面的操作只需要一直点击下一步就可以了,注意在选择是否使用EM资料档案库时,一定要选中,默认没有选中,dbca检查到系统中已经没有EM资料档案库,于是就会重新创建,OracleDBConsoleORCL服务也会重新添加了,这也会花一段时间,如果dbca重新配置过程中不出现错误,那配置结束后,OracleDBConsoleORCL服务就能够正常启动,就可以正常使用Oracle企业管理器了。如果删除EM资料档案库不彻底,运行dbca期间可能会报错,一般是SYSMAN用户及其对象没有删除干净,遇到这种问题时,只需要再次运行一次emca –repos drop即可。
如果在删除EM资料档案库时,删除了SYSMAN用户及其所属对象,但OracleDBConsole[SID]服务没有删除时,如果该服务还能够启动,并能够通过浏览器进入,那此时就可以使用emca –repos create重新创建EM资料档案库即可。
总结
经过这次冒险,总觉得Oracle的OracleDBConsole[SID]服务很脆弱,在没有任何误操作的情况下,重新启动计算机后,它也可能就启动不了了,但在这时,大家一定要保持冷静,多思考,办法总是有的,不到万不得已,不要重新安装,建议大家在重新启动系统前,先手动停止OracleDBConsole[SID]服务、监听器服务和数据库服务。
经过网上查询,知道是网络端口重复了,使用以下方法解决:
emca -config dbcontrol db -DBCONTROL_HTTP_PORT 5508 -AGENT_PORT 3940 -RMI_PORT 5524 -JMS_PORT 5545
再停用一次EM,再启动EM,就好了.
emctl stop dbconsole
emctl start dbconsole
不过提醒点,如果你的计算机IP地址不是固定的话,装Oracle时把网断(禁用与断网是两个不同的概念)了,这样装就不会出问题,再者在启动该服务与监听服务时,不能有网络的,因为如果有网络oracle会自动配置,所以就会出现以上的问题了,最好把些两项服务设置为手动最好
也就是在什么IP环境下装的数据库,服务才能在这种情况下启动
还有如果安装了ODTwithODAC1110621工具的话,PL/SQL连接会出现以下错误
pl/sql ora-12154
我的做法是修改PATH变量
修改前为:D:/Oracle11/product/11.1.0/client_1;D:/Oracle11/product/11.1.0/client_1/bin;D:/Oracle11/product/11.1.0/db_1/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;C:/Program Files/Microsoft SQL Server/90/Tools/binn/;D:/Program Files/CodeSmith/v5.0/
修改后为:D:/Oracle11/product/11.1.0/client_1;D:/Oracle11/product/11.1.0/client_1/bin;D:/Oracle11/product/11.1.0/db_1;D:/Oracle11/product/11.1.0/db_1/bin;%SystemRoot%/system32;%SystemRoot%;%SystemRoot%/System32/Wbem;C:/Program Files/Common Files/Thunder Network/KanKan/Codecs;C:/Program Files/Microsoft SQL Server/90/Tools/binn/;D:/Program Files/CodeSmith/v5.0/
---------------------------------------------------------------------------------------
LOG3:
其实这个问题根据我在网上查资料了解的情况应该是个老问题了,只不过大部分都基于10g以前的版本。在WINXP下安装11g版本的时候我都是按照默认的操作执行,在重启机器后,OracleDBConsoleorcl服务就无法开启,错误提示:
Windows 不能在 本地计算机 启动 OracleDBConsoleorcl。有关更多信息,查阅系统事件日志。如果这是非 Microsoft 服务,请与服务厂商联系,并参考特定服务错误代码 2。
在网上搜索了很多方法都无效,包括拔网线重启、重命名HOSTNAME_ORCL/OC4J_DBConsole_orcl文件夹等(其实这个方法思路是对的,但是网上提供这个答案的朋友没有讲解清楚),下面是我解决问题的过程
在命令行下输入
emctl start dbconsole
提示
报错,ORACLE_SID没有定义
输入
set ORACLE_SID=ORAL(ORAL是我的实例名,也是服务名)
没有问题,接着继续输入emctl start dbconsole
提示
OC4J Configuration issue. D:oracleproduct10.2.0db_1/oc4j/j2ee/OC4J_DBConsole_192.168.1.103_orcl not found.
接着联想到前面看到的解决方法,茅塞顿开:复制一份j2ee下的OC4J_DBConsole_HOSTNAME_orcl文件夹,重命名为OC4J_DBConsole_192.168.1.103_orcl,复制一份db_1下的HOSTNAME_orcl文件夹,重命名为192.168.1.103_orcl。
最后重新启动dbconsole,服务启动成功
总结:因为机器在内网,路由器设置为强制DHCP分配IP地址,虽然每次设置的IP地址都是一样的(我这里为192.168.1.103)但因为设置的原因造成服务启动失败。除了上面的解决办法之外,还有一种我没有验证的方法,不过原理上应该也是可以的:
在c:/windows/system32/drivers/etc 文件夹中找到HOST文件,在最后加入
192.168.?.?(你自己目前IP) localhost
或者干脆使用固定IP,省去这些麻烦的设置。
最后附上服务启动成功后的EM登录地址:
https://192.168.1.103:1158/em/
---------------------------------------------------------------------------------------
LOG4:
启动时oracledbconsoleorcl服务提示:
--Windows不能在本地计算机启动oracledbconsoleorcl 有关更多信息, 查阅系统事件日志,如果这是非Microsoft服务,请与服务器厂商联系 。
网上的观点:修改tnsname.ora和listener.ora两个文件(D:/oracle/product/10.2.0/db_1/NETWORK/ADMIN路径下),不过貌似没用。
已经成功的方案:修改配置,引自http://ssqmeng.javaeye.com/blog/317365。
第一步:先删除原来的配置:
D:/Documents and Settings/guanhao>emca -repos drop
EMCA 开始于 2007-11-19 14:45:06
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: tuosi
监听程序端口号: 1521
SYS 用户的口令:
SYSMAN 用户的口令:
SYSMAN 用户的口令:
是否继续? [yes(Y)/no(N)]: y
2007-11-19 14:45:20 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:/oracle/product/10.2.0/db_1/cfgtoollogs/emca/tuosi/em
ca_2007-11-19_02-45-06-下午.log。
2007-11-19 14:45:21 oracle.sysman.emcp.EMReposConfig dropRepository
信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
2007-11-19 14:48:13 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功删除资料档案库
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2007-11-19 14:48:13
--------------------------------------------------------------------------------
第二步:创建新的配置:
D:/Documents and Settings/guanhao>emca -repos create
EMCA 开始于 2007-11-19 14:53:35
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: tuosi
监听程序端口号: 1521
SYS 用户的口令:
SYSMAN 用户的口令:
是否继续? [yes(Y)/no(N)]: y
2007-11-19 14:53:50 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:/oracle/product/10.2.0/db_1/cfgtoollogs/emca/tuosi/em
ca_2007-11-19_02-53-35-下午.log。
2007-11-19 14:53:50 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2007-11-19 14:57:40 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2007-11-19 14:57:40
--------------------------------------------------------------------------------
第三步:
D:/Documents and Settings/guanhao>emca -config dbcontrol db
EMCA 开始于 2007-11-19 15:02:45
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: tuosi
已为数据库 tuosi 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 tuosi
此操作将移去现有配置和默认设置, 并重新执行配置
是否继续? [yes(Y)/no(N)]: y
监听程序端口号: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
用户名/口令无效。
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------
已指定以下设置
数据库 ORACLE_HOME ................ E:/oracle/product/10.2.0/db_1
数据库主机名 ................ server
监听程序端口号 ................ 1521
数据库 SID ................ tuosi
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............
-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: y
2007-11-19 15:03:25 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:/oracle/product/10.2.0/db_1/cfgtoollogs/emca/tuosi/em
ca_2007-11-19_03-02-45-下午.log。
2007-11-19 15:03:27 oracle.sysman.emcp.util.DBControlUtil stopOMS
信息: 正在停止 Database Control (此操作可能需要一段时间)...
2007-11-19 15:03:39 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2007-11-19 15:04:29 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2007-11-19 15:04:29 oracle.sysman.emcp.EMDBPostConfig performConfiguration
警告: 无法创建 Database Control 快捷方式
2007-11-19 15:04:29 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 http://server:5500/em <<<<<<<<<<<
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2007-11-19 15:04:29
在这一步,OracleDBConsoleorcl已经启动了,只是监听器还没启动
————————————————————
以上,红色是手工输入的,其他事直接自动显示的。这样算是配置完毕。
---------------------------------------------------------------------------------------
LOG5:
OracleDBConsoleorcl 启动不了 服务特定错误2【解决办法】
问题描述:
我的oracle不知道为什么OracleDBConsoleorcl 启动不了 出现“服务特定错误2”现在我也不知道原因
估计是因为我电脑的IP经常变动,有时在公司用,有时在家里用!
我的oracle版本:oracle10g
问题解决:
上网搜索,发现很多人遇到过这问题,不过导致这问题的原因也很多,我是试了几个方法都不行,后来进行如下:
第一步:先删除原来的配置:
D:/Documents and Settings/guanhao>emca -repos drop
EMCA 开始于 2007-11-19 14:45:06
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: tuosi
监听程序端口号: 1521
SYS 用户的口令:
SYSMAN 用户的口令:
SYSMAN 用户的口令:
是否继续? [yes(Y)/no(N)]: y
2007-11-19 14:45:20 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:/oracle/product/10.2.0/db_1/cfgtoollogs/emca/tuosi/em
ca_2007-11-19_02-45-06-下午.log。
2007-11-19 14:45:21 oracle.sysman.emcp.EMReposConfig dropRepository
信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
2007-11-19 14:48:13 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功删除资料档案库
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2007-11-19 14:48:13
--------------------------------------------------------------------------------
第二步:创建新的配置:
D:/Documents and Settings/guanhao>emca -repos create
EMCA 开始于 2007-11-19 14:53:35
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: tuosi
监听程序端口号: 1521
SYS 用户的口令:
SYSMAN 用户的口令:
是否继续? [yes(Y)/no(N)]: y
2007-11-19 14:53:50 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:/oracle/product/10.2.0/db_1/cfgtoollogs/emca/tuosi/em
ca_2007-11-19_02-53-35-下午.log。
2007-11-19 14:53:50 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2007-11-19 14:57:40 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2007-11-19 14:57:40
--------------------------------------------------------------------------------
第三步:
D:/Documents and Settings/guanhao>emca -config dbcontrol db
EMCA 开始于 2007-11-19 15:02:45
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: tuosi
已为数据库 tuosi 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 tuosi
此操作将移去现有配置和默认设置, 并重新执行配置
是否继续? [yes(Y)/no(N)]: y
监听程序端口号: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
用户名/口令无效。
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选):
-----------------------------------------------------------------
已指定以下设置
数据库 ORACLE_HOME ................ E:/oracle/product/10.2.0/db_1
数据库主机名 ................ server
监听程序端口号 ................ 1521
数据库 SID ................ tuosi
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ...............
-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: y
2007-11-19 15:03:25 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 E:/oracle/product/10.2.0/db_1/cfgtoollogs/emca/tuosi/em
ca_2007-11-19_03-02-45-下午.log。
2007-11-19 15:03:27 oracle.sysman.emcp.util.DBControlUtil stopOMS
信息: 正在停止 Database Control (此操作可能需要一段时间)...
2007-11-19 15:03:39 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2007-11-19 15:04:29 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2007-11-19 15:04:29 oracle.sysman.emcp.EMDBPostConfig performConfiguration
警告: 无法创建 Database Control 快捷方式
2007-11-19 15:04:29 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 http://server:5500/em <<<<<<<<<<<
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2007-11-19 15:04:29
在这一步,OracleDBConsoleorcl已经启动了,只是监听器还没启动
第四步:登陆http://server:5500/em 启动监听器,(有时候会启动不成功,报adapter错误,不过我最后是成功了)在里面有需要用到系统身份验证,可见本blog前面一篇日志:ORACLE 网络服务 主机登陆
这样,大概是解决问题了。
备注:
这里面我还是有很多地方不是很明白,慢慢学习咯:)
---------------------------------------------------------------------------------------