Oracle10G的EM采用了web方式,并且分成了2个产品,database control和grid control。Grid control需要下载单独的光盘安装。
在用DBCA建库的时候,可以选择是否启用dbcontrol,启用的话需要在数据库中建立一个sysman的schema,用于保存EM的一些数据,这个就是EM的资料库(repository)。使用命令行工具emca可以创建,修改,重建或者删除dbcontrol的配置。
由于要在数据库中建EM资料库,数据库和监听都必须已经启动并正常工作。
常用的命令
emca -repos create 创建一个EM资料库
emca -repos recreate 重建一个EM资料库
emca -repos drop 删除一个EM资料库
emca -config dbcontrol db 配置数据库的 Database Control
emca -deconfig dbcontrol db 删除数据库的 Database Control配置
emctl start dbconsole 启动EM console服务
emctl stop dbconsole 停止EM console服务
emca -reconfig ports命令重新配置db control和agent的端口。通过查看$ORACLE_HOME/install/portlist.ini文件可以知道当前dbcontrol正在使用的端口,默认dbcontrol http端口1158,agent端口3938。
如果要重新配置端口,可以使用如下命令:
emca -reconfig ports -dbcontrol_http_port 1159
emca -reconfig ports -agent_port 3939
调试过程中出现的问题(1) 由于安装数据库是设置的shared_pool_size太小,导致 emca -config dbcontrol db时出错。后重新设置shared_pool_size=80M后解决问题。
(2) 安装完成后连接到oem速度很慢,经常报ORA-12518错误,已打开listner日志,目前尚未解决。
调试过程记录
C:\>emctl status dbconsoleOC4J Configuration issue. d:\ora10g/oc4j/j2ee/OC4J_DBConsole_hy.myoa.com_ora
10g not found.
C:\>
C:\>
C:\>emca -repos recreate
EMCA 开始于 2008-5-22 13:59:02
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: ora10g
监听程序端口号: 1521
SYS 用户的口令:
SYSMAN 用户的口令:
是否继续? [yes(Y)/no(N)]: yes
2008-5-22 13:59:13 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 d:\ora10g\cfgtoollogs\emca\ora10g\emca_2008-05-22_01-59
-01-下午.log。
2008-5-22 13:59:14 oracle.sysman.emcp.EMReposConfig dropRepository
信息: 正在删除 EM 资料档案库 (此操作可能需要一段时间)...
2008-5-22 13:59:37 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功删除资料档案库
2008-5-22 13:59:37 oracle.sysman.emcp.EMReposConfig createRepository
信息: 正在创建 EM 资料档案库 (此操作可能需要一段时间)...
2008-5-22 14:05:33 oracle.sysman.emcp.EMReposConfig invoke
信息: 已成功创建资料档案库
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2008-5-22 14:05:33
C:\>
C:\>
C:\>emca -config dbcontrol db
EMCA 开始于 2008-5-22 14:07:06
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: ora10g
监听程序端口号: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令:
通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选): mail.esp.com
-----------------------------------------------------------------
已指定以下设置
数据库 ORACLE_HOME ................ d:\ora10g
数据库主机名 ................ hy.myoa.com
监听程序端口号 ................ 1521
数据库 SID ................ ora10g
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ............... mail.esp.com
-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: yes
2008-5-22 14:08:38 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 d:\ora10g\cfgtoollogs\emca\ora10g\emca_2008-05-22_02-07
-06-下午.log。
2008-5-22 14:08:39 oracle.sysman.emcp.DatabaseChecks performReposChecks
警告: 'shared_pool_size' 必须大于等于 80 MB。
2008-5-22 14:08:54 oracle.sysman.emcp.util.PlatformInterface executeCommand
警告: 执行 CMD /C d:\ora10g\bin\emctl.bat deploy dbconsole d:\ora10g\hy.myoa
.com_ora10g hy.myoa.com:3938 hy.myoa.com ora10g 时出错
2008-5-22 14:08:54 oracle.sysman.emcp.EMConfig perform
严重: 实例化 EM 配置文件时出错
有关详细资料, 请参阅 d:\ora10g\cfgtoollogs\emca\ora10g\emca_2008-05-22_02-07-06-
下午.log 中的日志文件。
无法完成配置。 有关详细资料, 请参阅 d:\ora10g\cfgtoollogs\emca\ora10g\emca_2008-
05-22_02-07-06-下午.log 中的日志文件。
C:\>emca -config dbcontrol db
EMCA 开始于 2008-5-22 14:10:23
EM Configuration Assistant 10.2.0.1.0 正式版
版权所有 (c) 2003, 2005, Oracle。保留所有权利。
输入以下信息:
数据库 SID: ora10g
已为数据库 ora10g 配置了 Database Control
您已选择配置 Database Control, 以便管理数据库 ora10g
此操作将移去现有配置和默认设置, 并重新执行配置
是否继续? [yes(Y)/no(N)]: yes
监听程序端口号: 1521
SYS 用户的口令:
DBSNMP 用户的口令:
SYSMAN 用户的口令:
SYSMAN 用户的口令: 通知的电子邮件地址 (可选):
通知的发件 (SMTP) 服务器 (可选): mail.esp.com
-----------------------------------------------------------------
已指定以下设置
数据库 ORACLE_HOME ................ d:\ora10g
数据库主机名 ................ hy.myoa.com
监听程序端口号 ................ 1521
数据库 SID ................ ora10g
通知的电子邮件地址 ...............
通知的发件 (SMTP) 服务器 ............... mail.esp.com
-----------------------------------------------------------------
是否继续? [yes(Y)/no(N)]: yes
2008-5-22 14:10:53 oracle.sysman.emcp.EMConfig perform
信息: 正在将此操作记录到 d:\ora10g\cfgtoollogs\emca\ora10g\emca_2008-05-22_02-10
-23-下午.log。
2008-5-22 14:10:55 oracle.sysman.emcp.util.DBControlUtil stopOMS
信息: 正在停止 Database Control (此操作可能需要一段时间)...
2008-5-22 14:11:04 oracle.sysman.emcp.util.DBControlUtil startOMS
信息: 正在启动 Database Control (此操作可能需要一段时间)...
2008-5-22 14:12:04 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: 已成功启动 Database Control
2008-5-22 14:12:04 oracle.sysman.emcp.EMDBPostConfig performConfiguration
警告: 无法创建 Database Control 快捷方式
2008-5-22 14:12:04 oracle.sysman.emcp.EMDBPostConfig performConfiguration
信息: >>>>>>>>>>> Database Control URL 为 <<<<<<<
<<<<
已成功完成 Enterprise Manager 的配置
EMCA 结束于 2008-5-22 14:12:04
C:\>emctlOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
Invalid arguments
Unknown command option
Usage::
Oracle Enterprise Manager 10g Database Control commands:
emctl start| stop| status| setpasswd dbconsole
emctl secure
emctl set ssl test|off|on em
emctl set ldap emctl blackout options can be listed by typing "emctl blackout"
emctl config options can be listed by typing "emctl config"
emctl secure options can be listed by typing "emctl secure"
emctl ilint options can be listed by typing "emctl ilint"
emctl deploy options can be listed by typing "emctl deploy"
C:\>emctl status dbconsoleOracle Enterprise Manager 10g Database Control Release 10.2.0.1.0
Copyright (c) 1996, 2005 Oracle Corporation. All rights reserved.
Oracle Enterprise Manager 10g is running.
------------------------------------------------------------------
Logs are generated in directory d:\ora10g/hy.myoa.com_ora10g/sysman/log
C:\>
C:\>
**************************
I had the same issue. After the OEM policy violations were listed i did this:
as sys as sysdba
revoke execute on UTL_HTTP from public;
revoke execute on UTL_SMTP from public;
revoke execute on UTL_TCP from public;
revoke execute on DBMS_RANDOM from public;
revoke execute on UTL_FILE from public;
Which royally screwed up OEM
3 basic steps
1- grant execute to necessary users
2- recompile invalid objects
3- refresh the agent
See METALINK
Note:291113.1
Note:315283.1
1. Log into the repository database as sys:
grant execute on sys.utl_smtp to sysman
grant execute on sys.utl_tcp to sysman
2. alter package sysman.emd_notification compile;
And some other schemas need grants as well -
grant execute on utl_file to xdb;
grant execute on sys.utl_file to DMSYS;
etc......
Then recompile invalid objects in db using utlrp.sql found here =
$ORACLE_HOME/bla/bla/RDBMS/ADMIN/utlrp.sql
Then refresh the agent
emctl clearstate agent
wait around 30 minutes for the state to clear
That worked for me - Your mileage may vary
****************
Mohammed,
Thank you for your help, but I've found the problem. It turns out I'm the victim of a bug in which the OC4J file orion-web.xml is not correct. Its classpath entries appear to point to Oracle testing libraries. The solution is to have a backup of the file and replace it after installing. Fortunately, one of my co-workers had run into the same problem and had the file available.
I gather that there's a bug, but even knowing what the problem is, I haven't been able to find it. If I do, I'll write it here.
Hey!
Thank you so much for the answer!!! I've been troubled with the same problem for a couple of weeks already..
Luckily, I had another instance+dbconsole running, so I copied the file on top of the one in the newly created folder, restarted the dbconsole and it worked!!!