oracle OEM服务和监听无法启动
转自:panmiao8888的博客
由于计算机名称改变或者ip地址改变导致本地数据库无法启动,
问题大概描述如下:
命令行里输入emctl start dbconsole
然后根据它的说明设置oracle_sid
命令行里输入set oracle_sid=orcl (如果你的sid不是orcl,请自己更换)
再次敲入emctl start dbconsole
显示OC4J Configuration issue. D:\oracle\product\10.2.0\db_1/oc4j/j2ee/OC4J_DBConsole_192.168.1.101_orcl not found.
于是我到了该目录下发现有一个我的"OC4J_DBConsole_"+ 机器名+"_orcl"的目录
网上大家说如果你是修改了机器名的,那么你在这里把你的新机器名替换原来的机器名
变成——>"OC4J_DBConsole_"+ 新机器名+"_orcl"
如果你是像我一样,是因为环境改变而发生这个问题的,我建议你复制一个目录,进行更改。
复制一份"OC4J_DBConsole_"+ 机器名+"_orcl" 重命名为 "OC4J_DBConsole_ 192.168.1.101_orcl
再次敲入emctl start dbconsole
有显示EM Configuration issue. D:\oracle\product\10.2.0\db_1/ 192.168.1.101 _orcl not found
我想聪明的你一定已经知道该怎么做了
如法炮制到相应目录下,复制一份重命名
再次敲入emctl start dbconsole
显示
Oracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
http://机器名:1158/em/console/aboutApplication
Starting Oracle Enterprise Manager 10g Database Control ...OracleDBConsoleorcl
服务正在启动 ......................................................
服务终止,无法启动。
如上,如此操作之后服务仍然无法启动,接下来需要其他操作
查看日志总的内容,大概是
Check if repos user already exists.
原值 6: WHERE username=UPPER('&EM_REPOS_USER');
新值 6: WHERE username=UPPER('SYSMAN');
原值 8: IF ( '&EM_CHECK_TYPE' = 'EXISTS') THEN
新值 8: IF ( 'NOT_EXISTS' = 'EXISTS') THEN
原值 11: raise_application_error(-20000, '&EM_REPOS_USER does not exists..');
新值 11: raise_application_error(-20000, 'SYSMAN does not exists..');
原值 14: ELSIF ( '&EM_CHECK_TYPE' = 'NOT_EXISTS' ) THEN
新值 14: ELSIF ( 'NOT_EXISTS' = 'NOT_EXISTS' ) THEN
原值 17: raise_application_error(-20001, '&EM_REPOS_USER already exists..');
新值 17: raise_application_error(-20001, 'SYSMAN already exists..');
原值 21: raise_application_error(-20002, 'Invalid Check type &EM_CHECK_TYPE');
新值 21: raise_application_error(-20002, 'Invalid Check type NOT_EXISTS');
DECLARE
*
第 1 行出现错误:
ORA-20001: SYSMAN already exists..
ORA-06512: 在 line 17
解决方案如下:
ORACLE 配置OEM
Oracle 2010-10-19 12:07:30 阅读26 评论0 字号:大中小 订阅
1. 默认OEM 连接:https://主机名:1158/em
2. 如果连接失败需要做以下配置:
重新配置dbconsole的步骤
emca -repos drop
emca -repos create
emca -config dbcontrol db
emctl start dbconsole
如果过程中报错:ORA-20001: SYSMAN already exists..
需先执行:
SQL> drop user sysman cascade;
SQL> drop role MGMT_USER;
SQL> drop user MGMT_VIEW cascade;
SQL> drop public synonym MGMT_TARGET_BLACKOUTS;
SQL> drop public synonym SETEMVIEWUSERCONTEXT;
再执行:重新配置dbconsole的步骤
如果连接进入OEM界面后,显示无法连接数据库实例。
需要修改hosts文件。
设置要查询的实例:set oracle_sid=demo
启动: emctl start dbconsole
停止: emctl stop dbconsole
查看状态: emctl status dbconsole
至此问题解决。